have been doing和have done 的区别

为什么有些词的have been doing和have done形式含义不同,如have written a book 和have been writing a book,前者表示已经写完,后者表示一直在写,还没写完,两者的意思不同。为teach的两种形式意思却相同呢?这两类词怎么区分呢?

请先 登录 后评论

最佳答案 2018-12-26 15:43

write a book中的write为终结性持续动词。这种动词表示事件意义时,只要不用进行体(包括完成进行体),都表示事件的终结,即动作结束了,而且语义的重心在动作持续一段时间后的结束上。例如:He wrote a book last year. He has written a book. 这二个句子虽然时态不同,但都没有用进行体。所以二个句子中的写书的动作都是完成的。而且这二个句子都不能与持续时间状语连用。

如果这种动词表示的事件没有结束,就必须使用进行体。不用进行体是错误的。例如:

When I saw him, he was writing a book. (用wrote为语法错误)。

He has been writing a book for six months. (用has written为语法错误)。

但teach作为不及物动词或teach English中的teach为非终结性持续动词。此类动词表示事件意义时,通常需要借助时间状语表示动作的结束,例如:I taught them English for 2 hours. 如果没有时间状语,则为习惯意义:I taught (them) English. 这种习惯也可以通过时间状语表示习惯的终结:I taught English for two years and then I joined the army.

此类动词表示长期习惯时,用一般体:I teach English.

如果教英语是一个人临时的工作(即临时、短期的、预计会结束的习惯,则谈论这个习惯时就需要用进行体。I’m teaching English at a night school these days.

一个长期习惯迄今为止持续了多久,用现在完成时+持续时间状语表示(持续时间状语为必具性的。否则就不是习惯意义)例如:

I have taught English for 10 years.

一个临时习惯迄今为止持续了多久,用现在完成时+持续时间状语。此时,时间状语是选择性的,而不是必具性的。没有持续时间状语,仍然可以表示一个临时习惯持续到现在,只是没有明确说明持续了多久而已。这不用于现在完成时。

I have been teaching English (for 3 months).

夸克曾在英国做过一项调查,问被调查者这二个句子有无差别。有的人认为二者有如上差异。即现在完成进行时表示的是临时的习惯或状态,故时间状语不宜为很长的时间。但也有人认为二者没有差异,可以替换使用。

无论用现在完成时还是现在完成进行时+持续时间状语,谓语表示的情景都是可能在说话时刚结束(不久),也可能还在持续并延伸到将来。所以是否在说话时结束并不是这二个时态的重点。重点是在现在以前,谓语表示的情景是持续的。这才是关键。

也有人认为现在完成时可能暗示谓语表示的情景在说话时已经结束了。现在完成进行时表示的情景暗示还会继续下去。但实际情况是现在完成进行时也完全可以表示刚结束不久的临时习惯。例如:I have been teaching English for six months. But I quit yesterday.

因此,现在完成时和现在完成进行时本身不足以区分谓语表示的情景是否结束了,而是要根据上下文语境才能做出正确的判断。

work, live, study, learn等少数动词的情况与此类似。

例如:

I live in China. 长期状态。

I am living in China. 临时状态。

I have lived in China for 20 years. 长期状态迄今持续的时间。可能还会继续住下去,也可能移居美国时在北京机场说的话。

I have been living in China for a year. 临时状态迄今持续的时间。可能还会继续在中国生活,也可能回国时在北京机场说的话。

I have lived/been living in China for 20 years. 认为二个时态在这里无差异的人说的话。

请先 登录 后评论

其它 2 个回答

刘永科   - 教育出版集团英语总顾问 & 英语系列图书主编
擅长:语法理论,语言学,文化背景

网友知道“现在完成时”和“现在完成进行时”的区别。这个区别应该带有“共性”。但是,网友却说write 和 teach 不一样,不知缘何?

现在完成进行时和现在完成时的区别:

 ① 现在完成进行时和现在完成时均可表示“从过去开始一直持续到现在”的动作,但现在完成时表示动作已完成,着重于结果;现在完成进行时表示的动作可能已完成也可能未完成,更强调动作的持续进行。比较:

I have read the book.我读过这本书。(已读完)

I have been reading the book.我一直在读这本书。(还在读,没结束)

② 一些静态(表状态)动词多用现在完成进行时,这样的静态动词主要有lie, stand, sit, wait, rain 等。只有这类动词才具有两种时态相似的用法。

She has lain in bed for a week.

She has been lying in bed for a week.(更常见)

她已经卧床一周了。

I have waited for you for two hours.

I have been waiting for you for two hours.(更常见)

我已经等你两小时了。



请先 登录 后评论
曾克辉  
擅长:英语考试

可参看英语语法网上的一篇文章:

http://www.yygrammar.com/Article/201511/4306.html


请先 登录 后评论
  • 3 关注
  • 4 收藏,31551 浏览
  • ygxjoy 提出于 2018-12-18 14:32

相似问题