语法基础|现在完成进行时

现在完成进行时

表示从过去某一时刻开始,一直持续到现在,动作刚刚结束或者动作仍在进行。

(一)形式

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.他学俄语还不到两年。


分享到:


相關文章: