全部语法课

第 48 课 · 第 4 阶段: 时态与情态动词

现在完成进行时

高级

Present perfect continuous

构成与用法

have/has been + -ing — 以前开始、现在仍在继续的动作

1.形式

现在完成进行时 = have / has + been + -ing。Been 不变,只有 have/has 随主语变化。

I / you / we / theyhe / she / it
肯定式I've been waiting.It's been raining.
否定式I haven't been sleeping well.She hasn't been working.
疑问式Have you been waiting long?Has it been raining?
简略回答Yes, I have. / No, I haven't.Yes, it has. / No, it hasn't.

三个部分缺一不可:have/has + been + -ing。常见的失误:漏掉 been(I have working),把 been 写成 being(has being working),或忘了加 -ing(has been learn)。

2.什么时候用

1. 从过去开始、现在还在进行的活动——常和 How long…?、for、since、all day 连用

  • It's been raining since lunchtime.

    从中午开始一直在下雨。

  • How long have you been learning English?

    你学英语多久了?

  • Nam has been working for the same company since 2019.

    阿南从 2019 年起一直在同一家公司工作。

2. 刚刚停止的活动,结果还看得出来

  • Your eyes are red. Have you been crying?

    你眼睛红红的,你哭过了吗?

  • Sorry I'm so sweaty — I've been running.

    不好意思我一身汗——我刚才在跑步。

3. 最近一再做的事——和 lately、recently、these days 连用

  • I've been going to the gym a lot lately.

    我最近经常去健身房。

  • Linh hasn't been sleeping well recently.

    阿玲最近一直睡不好。

3.和现在完成时比较

进行形式强调活动本身和它持续了多长时间;一般形式强调结果——完成了什么、做到了什么。

进行形式:have been doing一般形式:have done
活动、过程结果、完成了什么
多长时间:How long…?、for、since多少:数量、次数
可能还没完成已经完成
I've been painting the room.I've painted the room.
  • I've been reading this book for a week. I'm on page 90.

    这本书我已经读了一个星期,读到第 90 页了。(还没读完)

  • I've read three books this month.

    这个月我已经读了三本书。(有数量——已完成)

  • She's been writing emails all morning.

    她一上午都在写邮件。

  • She's written twelve emails this morning.

    她今天上午已经写了十二封邮件。

计算多少(three books、twelve emails、How many…?)→ 通常用一般形式。说多长时间(for two hours、all day、How long…?)→ 通常用进行形式。

4.状态动词

know、like、want、believe、belong、have(= 拥有)这类状态动词通常不用进行形式,所以即使说多长时间,也要用现在完成时。

  • I've known Hoa since we were at school.

    我从上学时就认识阿花了。(不说:have been knowing)

  • How long have you had your cat?

    你养这只猫多久了?(have = 拥有)

live、work、study、teach 用两种形式都对,意思几乎一样。进行形式听起来更临时,一般形式更长久。

  • We've been living with my parents since March.

    我们从三月起一直跟我父母住在一起。(临时)

  • My grandparents have lived in this village all their lives.

    我爷爷奶奶一辈子都住在这个村子里。(长久)

5.和现在进行时比较

现在进行时只说某事正在发生。一旦加上多长时间(for、since、How long…?),就要用现在完成进行时。

  • We're waiting for the bus.

    我们在等公交车。

  • We've been waiting for the bus for forty minutes!

    我们等公交车已经等了四十分钟了!(不说:We are waiting … for forty minutes)

中文说“我学英语两年了”,动词没有变化,所以很多人会说 “I'm learning English for two years”,因为这件事还在进行。但一说到多长时间,英语就要用 I've been learning English for two years。

6.常见错误

  • It is raining since this morning.

    It has been raining since this morning.

    since → 用完成时。

  • I have been work here since 2020.

    I have been working here since 2020.

    been + -ing。

  • He has being working on this project since March.

    He has been working on this project since March.

    have/has + been,不是 being。

  • I have been studying for this exam since three weeks.

    I have been studying for this exam for three weeks.

    three weeks 是一段时间 → for。

  • I've been knowing her for years.

    I've known her for years.

    know 是状态动词 → 用一般形式。

  • Did you been exercising lately?

    Have you been exercising lately?

    疑问句把 have/has 放在主语前——不用 did。

例句

  • My eyes hurt. I have been looking at this screen since nine o'clock.
  • How long have you been learning English?
  • My phone has been ringing for five minutes. Can you answer it?
  • Grandma has been cooking in the kitchen all morning, so lunch will be delicious.
AI 正在听...•App Store 和 Google Play 评分 4.7/5

和 AI 说英语 全天 24 小时

立即下载应用 — 实时发音评分、自然对话、像真人老师一样纠正。

AI 发音评分即时反馈自然对话