现在完成进行时 Present Perfect Continuous
考试:📘 KET — 📙 PET ✓ 📕 FCE·雅思 ✓ 分类:时态 考试入口:PET语法清单 关联:现在完成时 Present Perfect | 现在进行时 Present Continuous | 过去完成时 Past Perfect
核心规则(Grammar Core)
什么时候用?
把现在完成时(完成结果)和进行时(持续过程)合二为一:
- 从过去某时持续到现在,还在进行 — I have been studying English for 5 years.(学了 5 年,还在学)
- 刚停下,结果还看得见 — Why are you wet? — I have been swimming.(刚游完,所以湿)
- 强调持续的努力或过程,不强调结果 — She has been practicing the piano all morning.
一句话总结:现在完成时关心”完成没有”,现在完成进行时关心”做了多久、还在不在做”。
构成公式
| 句型 | 公式 | 例句 |
|---|---|---|
| 肯定 | S + have/has + been + V-ing | They have been waiting for an hour. |
| 否定 | S + haven’t/hasn’t + been + V-ing | He hasn’t been feeling well lately. |
| 疑问 | Have/Has + S + been + V-ing? | Have you been crying? |
has → he / she / it / 单数名词 have → I / you / we / they / 复数名词 缩写:I’ve been / he’s been / we’ve been
信号词雷达
| 信号词 | 用法 | 例句 |
|---|---|---|
| for + 时段 | 持续多久 | I have been learning Chinese for 3 years. |
| since + 时间点 | 从何时起 | She has been playing Genshin since last summer. |
| all morning / all day / all week | 整段时间 | He has been gaming all afternoon. |
| lately / recently | 近期 | I have been feeling tired lately. |
| How long…? | 提问”多久” | How long have you been waiting? |
Grammar Lens
时间轴定位
现在完成时(关心终点)
─────────●
过去 现在
↓
现在完成进行时(关心整条线段)
━━━━━━━━━━●━━━→(可能还会持续)
过去 现在
类比:现在完成时是拍照——咔嚓,记录”已完成”那一刻;现在完成进行时是录像——一直在拍,从过去拍到现在,还在拍。
对比辨析:现在完成时 vs 现在完成进行时 ⚠️
这是 PET 最核心的对比,必背:
| 现在完成时(完成 + 结果) | 现在完成进行时(持续 + 过程) |
|---|---|
| I have read three books this month.(看完了三本——强调数量) | I have been reading all afternoon.(读了一下午——强调过程) |
| She has cooked dinner.(做好了,可以吃了) | She has been cooking all day.(做了一整天,可能还在做) |
| I have written my essay.(写完了) | I have been writing my essay for hours.(写了好几个小时) |
判断口诀:
- 看到数量/结果(three books / the essay)→ 完成时
- 看到时长(for / since / all day / how long)→ 完成进行时
状态动词不能用进行时 ⚠️
下列动词表示状态(不是动作),通常只用完成时,不用完成进行时:
| 状态动词 | ✅ 正确 | ❌ 错误 |
|---|---|---|
| know | I have known him for 5 years. | |
| like / love / hate | She has liked him since middle school. | |
| be | We have been friends for 10 years. | |
| have(拥有) | I have had this phone for 2 years. |
例外:have 表”经历/做”时可以用进行时——She has been having trouble sleeping.
😂 Grammar Joke
妈妈的真问题
Mom(看到 Aaron 的房间): “Why is your room such a mess?” Aaron: “I have been cleaning it.” Mom: “It looks worse than yesterday.” Aaron: “Exactly. I have been cleaning it. I haven’t finished.” Mom: “How long have you been cleaning?” Aaron: “Since… ten minutes ago. Maybe five.” Mom: “And before that?” Aaron: “I had been playing Minecraft. For three hours. But I have been thinking about cleaning the whole time.”
Aaron 灵活运用了三种时态:现在完成进行时(一直在打扫但没完)+ 过去完成进行时(之前一直在玩游戏)+ 现在完成进行时(一直在”想”打扫)。
语法点:完成进行时强调过程而非结果——所以非常适合用来解释”我一直在努力,只是还没成功”。
🏛 语言文化光点
“How long have you been…?” — 英语社交核心句
在英语国家初次见面的小聊(small talk),最经典的问句之一就是:
“How long have you been living in Shanghai?” “How long have you been learning Chinese?” “How long have you been working here?”
这种问法暗含一个温暖的预设:对方正在做的事情有持续性、有积累、值得被看见。中文里”你来上海多久了”语感差不多,但英语用完成进行时把”持续性”这个意思直接打在时态上——这是英语对过程感的偏好。
J.K. Rowling 1995 年在咖啡馆写完《哈利波特》第一卷时,被问”How long have you been writing this?” 她说:“Five years. I’ve been writing it in cafés while my baby slept.”——一句话里浓缩了五年的坚持。
例题精讲
例1(📙 PET · 持续动作)
I _____ (wait) for the bus for 20 minutes. Where is it?
答案:have been waiting。“等了 20 分钟,还在等”——持续 + 进行。
例2(📙 PET · 完成时 vs 完成进行时)
A: Your eyes are red. _____ you _____ (cry)? B: No, I _____ (chop) onions.
答案:Have / been crying, have been chopping。结果(眼睛红)+ 过程(一直在做)→ 都用完成进行时。
例3(📙 PET · 状态动词陷阱)
I _____ (know) Aaron since we were 5 years old. A. have been knowing B. have known C. am knowing
答案:B。know 是状态动词,不用进行时。
例4(📙 PET · for vs since)
She _____ (study) Mandarin _____ 2020. He _____ (play) violin _____ 6 years.
答案:has been studying / since;has been playing / for。
- since + 时间点(2020)
- for + 时段(6 years)
例5(📕 FCE 预览 · 强调结果 vs 过程)
✅ I have written three emails this morning.(强调数量) ✅ I have been writing emails all morning.(强调时长)
两句意思相近,但视角完全不同——这是英语高级表达的精髓。
📖 Real English · 真实阅读
🔵 The Marathon Streak
Aaron’s grandfather has been running every morning since 1985. That’s almost forty years. He has run in twelve marathons. He has never missed a single day, even in heavy rain. People often ask him, “How long have you been doing this?” He always smiles and says, “Long enough that my legs know the route without me.” His record is impressive: he has been waking up at 5 a.m. for so long that he no longer needs an alarm clock. “I haven’t used one since I was 30,” he says.
🔵 Why Are You So Tired?
“You look exhausted. What have you been doing?”
“I have been studying for the PET exam. I have been practicing writing every day for two weeks. My teacher says my grammar has been improving, but I haven’t been sleeping enough. Since last Sunday, I have only slept about five hours each night. My mom has been telling me to take a break. Maybe she’s right. I have been working so hard that I have forgotten what relaxing feels like.”
🔵 The Game That Wouldn’t End
Leo and I have been playing the same Minecraft server since we were in 4th grade. We have built three cities, two castles, and one underwater base. Our parents have been complaining about screen time for years. But here’s the thing: we have also been learning. We have been solving problems together. We have been arguing, making up, and arguing again. We have been growing up inside that game. Last week, Leo said something I won’t forget: “We haven’t been playing Minecraft. We have been living in it.”
📝 中文注释(先读完英文再展开)
马拉松不间断:has been running since 1985(一直在跑,从未停止)/ has run in 12 marathons(完成了 12 场——数量用完成时)/ has been waking up at 5(一直在 5 点起床)。这段把完成时(强调结果)和完成进行时(强调持续)穿插使用——这正是英语母语者真实写作的样子。
为什么你这么累:典型的 PET Speaking 对话场景。have been studying / have been practicing / has been improving / haven’t been sleeping / have only slept / has been telling / have been working / have forgotten——一段话里完成进行时反复出现,因为整段都在描述持续的努力过程。have only slept 用完成时是因为强调”睡了多少小时”这个数量。
永不结束的游戏:have been playing since 4th grade(一直在玩)/ have built / have been complaining / have been learning / have been solving / have been arguing / have been growing up / have been living——最后一句的对比尤其经典:完成时(haven’t been playing 否定持续动作)vs 完成进行时(have been living)。游戏不是在被”玩”,而是在被”活”——英语完成进行时擅长表达这种持续浸润的感觉。
练习题
📙 PET 基础(5题)
- We _____ (live) in this house since 2018.
- How long _____ you _____ (learn) English?
- Aaron is tired. He _____ (play) basketball all afternoon.
- I _____ (not see) my cousin for ages. (注:见面是离散事件,不用进行时——haven’t seen 表”自上次见面以来的时间间隔”)
- She _____ (cook) dinner for the past two hours.
📙 PET Writing Part 1 · 句型转换(2题 · 必考)
1. 用 have been …ing for 改写
I started learning English 5 years ago. → I _____ English for 5 years.
参考答案:have been learning
2. 用 since 改写
Aaron began playing Minecraft when he was 8 years old. → Aaron _____ Minecraft since he was 8.
参考答案:has been playing
📙 PET 进阶写作(1题)
回答 PET Speaking 问题:“How long have you been learning English, and what have you been doing to improve?” 用 3-4 句话,至少 2 处现在完成进行时。
🔗 节点关系
现在完成时(完成结果) ── 现在完成进行时(持续过程)
↓ ↓
拍照 录像
have done have been doing
↓
for / since 信号词
↓
状态动词例外(know/like/be → 用完成时不用进行时)
↓
过去完成进行时(had been doing · 📕 FCE 预览)
双链跳转: 现在完成时 Present Perfect | 现在进行时 Present Continuous | 过去完成时 Past Perfect | 一般过去时 Simple Past
R. S. Ang · K12 Notes · PET, 2026