一、什么是现在完成进行时
现在完成进行时,用来描述从过去某个时间开始,一直持续到现在的动作,这个动作有可能刚刚停下,也有可能还在继续进行。它重点突出动作持续的过程,带有一种一直在做、不曾中断的含义,和侧重结果的现在完成时形成区分。
二、基本句型结构
肯定句:主语 + have /has been + 动词 ing 形式
I have been reading. 我一直在看书。
否定句:主语 + have /has not been + 动词 ing 形式
She has not been sleeping. 她一直没有睡觉。
一般疑问句:Have / Has + 主语 + been + 动词 ing 形式
Have you been waiting? 你一直在等吗?
主语是 he,she,it 或者单数人名、单数名词时,用 has;主语是 I,you,we,they 以及复数名词时,用 have。
三、常见时间标志词
这类标志词大多用来提示动作持续了一段时间,看到这些词可以优先考虑这个时态。
for + 一段时间,since + 过去时间点,all morning,all day,these days,lately,recently。
例:He has been studying English for two hours. 他已经学了两小时英语了。
四、和现在完成时的核心区别
很多学习者容易混淆这两个时态,核心差别看侧重点。
现在完成时,看重动作带来的最终结果,动作可能已经结束。
I have written the letter. 我写完信了(信已经写好,强调结果)。
现在完成进行时,看重持续的过程,动作大概率还在继续。
I have been writing the letter. 我一直在写信(还没写完,强调一直在写)。
短暂性动词,比如 finish,buy,stop,不能用在现在完成进行时里,这类动作没办法长时间持续。只有 read,study,work,wait,talk 这类延续性动词才适合。
五、高频易错点
第一,不要漏掉 been。很多同学会写成 have doing,正确格式一定是 have/has been doing。
第二,since 后面必须接过去的时间点或者一般过去时的句子,不能接时间段。
第三,不是所有带 for 的句子都要用这个时态,如果只想表达 “做过多久”,不强调持续过程,用现在完成时就可以。
六、简单训练方法
第一步,先找句子里的动作,判断是强调过程还是结果。
第二步,核对主语,确定用 have 还是 has,检查是不是延续性动词。
第三步,套用句型仿写句子,先用简单动词练习,比如 work,read,play,慢慢增加难度。