LiramiLirami

现在完成进行时(have / has been + 动词-ing)

从过去一直持续到现在(可能还要继续)的动作:for / since / How long …?

例句

  • It has been raining since two o'clock.从两点开始一直在下雨。
  • How long have you been learning English?你学英语学了多久了?
  • I'm tired because I've been cleaning my room.我累了,因为我一直在打扫房间。

讲解

学会以后,你能

  • 说“自从……一直在……”“已经……了多久”
  • 问别人“你……多久了?”
  • 分清“一直在做”(进行时)和“做完了几个”(完成时)

构成

have / has been + 动词-ing

I / you / we / they have been working(I've been …)
he / she / it has been working(she's been …)
It has been raining since two o'clock.

从两点开始一直在下雨。

I've been studying since this morning.

我从早上开始一直在学习。

for 和 since

一段时间 / 起点

for + 一段时间:for two hours、for ten years

since + 起点:since 2020、since last year、since this morning

He has been looking for a job since last year.

他从去年开始一直在找工作。

How long …?

问持续了多久

How long have you been learning English?

你学英语学了多久了?

How long has she been waiting?

她等了多久了?

和现在完成时的区别

过程 vs 结果

强调“一直在做”的过程,用进行时;说做完了多少、几个,用 have + 过去分词。

I've been writing emails all morning.

我一上午都在写邮件。

I've written three emails.

我已经写了三封邮件。

I'm tired because I've been cleaning my room.

我累了,因为我一直在打扫房间。(看得到的结果:很累)

常见错误

I am learning English for three years.I have been learning English for three years.

中文“学了三年了”没有时态变化,英语必须用完成进行时,不能用现在进行时。

I have been knowing her for ten years.I have known her for ten years.

know、like、want 这类状态动词不用进行时。

I've been writing three emails.I've written three emails.

有具体数量(三封)说明是结果,用现在完成时。

She has been working here since five years.She has been working here for five years.

一段时间用 for,起点才用 since。

练习要点

  1. 1. for / since + 一直在……

    have / has been + 动词-ing;for 接一段时间,since 接起点。

    • I've been studying since this morning.我从早上开始一直在学习。
    • They have been working at this company for ten years.他们在这家公司已经工作十年了。
  2. 2. How long …? 问多久了

    How long have / has + 主语 + been + 动词-ing?问某事持续了多久。

    • How long have you been learning English?你学英语学了多久了?
    • How long has she been waiting?她等了多久了?
  3. 3. 和现在完成时的区别

    强调过程用完成进行时;强调结果、做完了几个用现在完成时。

    • I've been writing emails all morning.我一上午都在写邮件。
    • I've written three emails.我已经写了三封邮件。

练到脱口而出

围绕这 3 个要点的小练习,每答一题立刻批改。免费开始。