語法基礎|現在完成進行時

現在完成進行時

表示從過去某一時刻開始,一直持續到現在,動作剛剛結束或者動作仍在進行。

(一)形式

be的現在完成時have/has been+動詞的現在分詞

(二)用法

表示從過去某一時刻開始,一直持續到現在,動作仍然繼續進行或剛剛結束。多用持續性動詞如live, learn, stand, sit, wait, study等,常帶有時間狀語如up to now, since 2014, for three months, all these days等或由since, when等引導的時間狀語從句,有時也可不帶時間狀語。例如:

It has been raining since midnight.從午夜以後一直在下雨。

What have you been doing all these years?(J.Aldridge)這些年你一直在做什麼?

I've been translating this article for three hours.我翻譯這篇文章已經三個鐘頭了。

I'm so sorry I'm late.Have you been waiting long?很抱歉,我遲到了。你等了很久嗎?

現在完成進行時和現在完成時的區別:

1.現在完成進行時強調從過去某一時刻開始,一直進行下去這一過程本身;而現在完成時則強調過去發生或開始的動作與現在的聯繫,即動作的結果及其對現在的影響。例如:

She has been cleaning the room.【持續性】她一直在打掃房間。

She has cleaned the room.【表示結果】她已經打掃房間了。

I've been reading The Great Gatsby this week.【持續性】這個星期我一直在看《了不起的蓋茨比》這本小說。

I've read The Great Gatsby this week.【小說看了,還記得小說的內容】這個星期我已經看完了《了不起的蓋茨比》這本小說。

有時,現在完成進行時還帶有感情色彩。例如:

Who has been eating my oranges? 【表示不滿。還有橘子剩下,尚未吃完。】誰吃過我的橘子?

Who has eaten my oranges? 【表示結果。橘子都吃完了,一個也沒剩下。】誰吃完了我的橘子?

2.如果表示過去某一時刻開始的動作一直延續到現在為止或者仍然繼續延續下去,並且謂語是持續性動詞,帶有表示一段時間的狀語,則可用現在完成進行時替代現在完成時。這時兩種時態可以互換。例如:

I have lived in New York for two years.

I have been living in New York for two years.我住在紐約已經兩年了。

This is the very question that psychologists have studies for many years.這正是心理學家們多年來研究的問題。

This is the very question that psychologists have been studying for many years.這正是心理學家們多年來一直研究的問題。

【注】這類句子含義無甚差別,但口語中傾向於用現在完成進行時。如果謂語是狀態動詞,通常用現在完成時。例如:

They've known each other since 1998.他們從1998年後就互相認識了。

I haven't seen you for years.我好幾年沒有見到你了。

3.現在完成進行時不管是否帶時間狀語,都能表示“從過去某一時刻開始一直延續到現在,並且仍然繼續進行或剛剛結束”的動作;而現在完成時則必須與時間狀語(如for five days等)連用,才能表達“延續到現在”的動作。例如:

They have been studying here for two months.他們一直在這裡學習,有兩個月了。

I've been waiting for her.我一直在等她。

John has worked in the company for three years.【時間狀語for three years不能省略,否則全句意義便改變】約翰在這個公司工作已經三年了。

4.現在完成進行時表示不間斷的動作,因此不能用來表示一件事的次數或以數量計算。在此情況下,只能用現在完成時。例如:

I've knocked five times.I don't think anyone's in.我敲了五次門,我想裡面沒人。

I've been knocking.I don't think anybody's in.我一直敲門,我想裡面沒人。

She's read three articles since breakfast.她早餐後讀了三篇論文。

She's been reading articles since breakfast.她早餐後一直讀論文。

5.現在完成進行時通常用於肯定句,較少用於否定句;而現在完成時無此限制。試比較:

He has been learning Russian for two years.他學俄語已經兩年了。

He has learned Russian for two years.他學俄語已經兩年了。

He hasn't learned Russian for two years.他學俄語還不到兩年。


分享到:


相關文章: