192 现在完成时的一般式与进行式的比较

 

A 在表达一个在过去开始而现在仍在继续或刚刚结束的动作时,某些动词既可以用现在完成时,也可以用现在完成进行时。这样的动词有expecthopelearnlielivelookrainsleepsitsnowstandstaystudyteachwaitwantwork等:

How long have you learnt English

你学习英语多久了?

How long have you been learning English

(译文同上。)

He has slept for ten hours

他已经睡了十个小时了。

He has been sleeping for ten hours

(译文同上。)

It has snowed for a long time

雪下了好长时间了。

It has been snowing for a long time

(译文同上。)

没有进行式的动词不可能有这样的用法(参见第168节),即现在完成进行时不能代替以下例句中的现在完成时:

Theyve always had a big garden

他们一直有一座大花园。

How long have you known that

你知道这事多久了?

Hes been in hospital since his accident

他从发生事故之后,一直在医院里。

注意:现在完成进行时可以和时间短语连用,也可以不连用,这一点就有别于现在完成时,因为后者与像for six dayssince Junenever等一些时间短语连用才能表示这类动作。不用这些时间状语时,现在完成时指的是完成了的一个动作。

B 用现在完成时表示的反复的动作,有时可以作为连续的动作用现在完成进行时表示:

Ive written six letters since breakfast

早饭后我已经写了六封信。

Ive been writing letters since breakfast

早饭后我一直在写信。

I have knocked five timesI dont think anyones in

我敲了五次门。我想屋里没有人。

Ive been knockingI dont think anybodys in

我一直在敲门。我想屋里没有人。

注意:现在完成进行时表示一种看来似乎是不间断的动作,所以提到做一件事的次数或一共做了多少事情时,不能用现在完成进行时。

C 用现在完成时表达的单一动作和用现在完成进行时表达的动作是有区别的:

aIve polished the car

我擦了车。

意指这件事已经结束了。

b Ive been polishing the car

我在擦车来着。

意指过去一小时我就是这样度过的,而不一定指动作已结束。注意:用现在完成进行时表示单一动作时,这一动作持续到说话的时间或者接近这一时间为止:

Hes been taking photos

他一直在拍照。(他大概手里正拿着照相机。)

He has taken photos

他拍过相片。(这件事可能是也可能不是最近发生的。)