+-
语法难点:现在完成时和for怎么连用才对?

语法很难?很枯燥?很多人对语法望而却步,其实是你不知道方法!今天,我们换种方式,不需要死记硬背,轻轻松松学语法。我们先来看下面的题目,你能选对吗?


...


艾伦英语部落今天带来的选择题和现在完成时的用法有关。这是英语语法的一个难点,很多同学学了十几年也搞不清。但没有关系,通过今天这个题目,你就可以轻松搞定这个复杂的时态了!


首先,我们先来一一分析这四个选项。A选项by the end of这个词组,表示的意思是“在…的末尾”,通常同于表示时间上的场合。用在句子中,后面跟不同的时间会有不同的用法。


① 当它后面跟将来的时间时,就要用一般将来时。比如:


...


在这个句子中,by the end of后面跟的时间是next month 下个月,表示将来的时间我们就要用到一般将来时


② 跟过去的时间,要用过去完成时,来看下面的例句:


...


非常明显,by the end of在句子中跟的是“last month”上个月,表示过去的时间,所以我们要用过去完成时来表达,过去完成时的构成是“had+动词过去分词”,也就是句子中的“had watched”


好啦,了解了by the end of的用法,接下来我们来看B选项for要怎么用。


For 通常后面要跟一个时间段,可以用在一般过去时和现在完成时。那究竟什么时候用一般过去时,什么时候用现在完成时呢?最关键的是要看和for连用的动词,是否是延续性动词,意思是动作发生在过去,且一直持续到现在。比如下面的句子:


...


从句子中我们可以获知,clean是一个延续性动词,因为窗户没有被清理的这个动词已经持续了几个星期,所以当for+时间段时连用时,在这个句子中就要用到现在完成时。


接下来我们来看C选项 until


Until通常引导时间状语从句,如果主句的谓语动词是延续性动词,那么这个主句常常要用肯定式,表示动作一直延续到until所表示的时间为止。我们来看下面的例子:


...


在这个句子中,主句的谓语动词sleep是一个延续性动词,所以主句通常用肯定式——“I’ll sleep…”


如果在until引导的时间状语从句中,主句的谓语动词是非持续性动词,那么这个主句常常用否定式,表示某一个动作到until所表示的时间才发生。例如:


...


这个例句中,因为谓语动词是非延续性动词go, 所以主句用到了否定式“didn’t go to bed”


最后我们来看D选项——since。Since经常和现在完成时连用,表示“自从…”Since后面通常可以跟一个时间点或者一个从句。我们先来举一个时间点的例句:


...


这个句子中,我们通过“have lived”首先可以判断出这个句子是现在完成时,其次通过2012我们知道since后面跟的是一个时间点。


刚才我们还提到since后面还可以跟从句。在这个从句中的往往对应一个过去的时间点,例如:


...


这里的since后面跟了“he came here”这个从句,从句中“came here”这个时间点已经过去了,因此我们要用过去式。


好啦,四个选项的答案的用法我们都了解清楚了,来看看开头的问题吧。


...


问题的大意是:他没有听到他朋友的消息____上个月。首先通过“hasn’t heard”我们知道这是一个现在完成时,最常和现在完成时连用的是forsince。而for后面常常跟一个时间段,since后面跟一个时间点,句子中“last month”是一个时间点,因此正确答案选D,你选对了么?

通过今天的这道题目,我们掌握了 by the end of, for, untilsince这四个词的用法,如果你觉得用这种方法学语法有效的话,就快来点赞关注艾伦英语部落吧~下期见!