have done 和 have been doing有什么差别?什么时候用

如题所述

你好,have done也可以表示持续到现在并且没完成的事情的,
他们的相同和不同如下:

相同点
1. 现在完成时和现在完成进行时都可以表示从过去某一时刻开始一直延续到现在的动作.如:
I have worked in this school since 2001. I have been working here since 2001.
2. 现在完成时和现在完成进行时都可以表示一段时间内进行的动作.例如: Mr. Smith has taught English for 20 years. Mr. Smith has been teaching English for 20 years.
以上句子用现在完成时与现在完成进行时,含义上没有什么差别,两种时态可以互相换.但两种时态也存在意义和用法上的差别. 不同点
1. 现在完成时可表示已经完成的动作或者状态,常常与already(已经)或ever(曾经)
连用。如:
We have already learnt Module 3. 我们已经学习了第三模块.
She is the most beautiful girl I have ever seen.她是我见过的最漂亮的女孩.
而现在完成进行时则表示的是从过去某一时刻开始一直延续到现在,有可能还要进行下去的动作,一般不与already或ever等连用,如:
We have been learning Module 4. 我们一直在学习第四模块.(不一定学完) 注意下面这组句子含义上的区别:
I have read the novel. 我看过那本书了. (已看完) I have been reading the novel. (一直在看,不一定看完)
2. 相对于现在完成时表示一次性,现在完成进行时可以表示动作的重复.如: I have met him at the library. (我在图书馆见过他.)
I have been meeting him at the library. (我经常在图书馆看见他.)
3. 现在完成时和现在完成进行时都可以表示刚刚结束的动作,但在含义上有区别.现在完成时强调的是动作的结果,而现在完成进行时强调的则是动作的过程.如:
You look so tired, what have you been doing 你看起来很累,做什么了 (强调动作) —We are very tired. We've been cleaning the house. 我们很累,我们刚才在打扫房子.(强调该动作所导致)
4. 现在完成进行时态不能用来谈某个动作的具体次数或几件事情.这时,我们要用现在完成时态.如:
I have been drinking five cups of coffee this afternoon.(×) I have drunk five cups of coffee this afternoon.
5. 现在完成时强调"事实";而现在完成进行时则强调"动作",并且常含有喜悦,愤怒,不满,厌恶等感情色彩.如:
The lazy boy has lain in bed for a whole day. 这个懒孩子在床上躺了一天.(强调事实) The lazy boy has been lying in bed for a whole day. 这个懒孩子在床上躺了一天了.(强调动作,含有对小男孩厌恶的感情色彩)
6. 如果没有时间状语,现在完成进行时有延续性,现在完成时没有.如: I've been cleaning the house but I still haven't finished. I've cleaned the house, but I still haven't finished.(×)
—We've cleaned the house. You may come in now. 我们打扫过房子了,你可以进来了.(强调结果"房子干净")

望采纳。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-05
两者的区别是时态不同,表达的意义不同
区别一 时态意义
have done是现在完成时
have been doing 是现在完成进行时

区别二 作用不同
have done是描述过去发生的而与现在情况有关的事或状态,或是从过去某时到现在为止这一段时间中发生的情况,换言之,现在完成时是表现从过去到现在的事情。引用过去,描述现在。
have been doing表示动作从某一时间开始,一直持续到现在,或者刚刚终止,或者可能仍然要继续下去。(与since,for连用时,要用连续性动词,不可用瞬间动词,但连续性动词常常表示动作会进行下去)一直一直做某事,已经做了很长时间还在做
区别三 句型
I have never seen such fine pictures before.
我以前从来没有看过这么好的画
He has just gone to England.
他刚去英国
I have been away from my hometown for thirty years.
我离开家乡有30年了

I have been swimming in the cold water for about two hours.
我已经在冰冷的水里游了将近两个小时
How long have you been waiting here?
你在这里一直等了多久
第2个回答  2016-09-26
have done 和 have been doing二者的区别在于:
have done是现在完成时,表示过去发生的事情对现在的影响,动作已经完成并停止
如:I have done my homework.(“我”已经做完家庭作业了)
have been doing是现在完成进行时,表示的是动作一直在进行,并对现在和以后产生持续的影响,
如:I have been doing my homework.(表明:我一直在做家庭作业,还没有做完,并将继续下去。)本回答被网友采纳
第3个回答  2016-09-26
这即是现成完成时和现在完成进行时的区别。

现在完成时,表示动作已经结束,并强调对现在的影响。如:He has turned off the light. 他关了灯(现在这个灯仍然是灭着的)。

现在完成进行时,表示动作从某一时间开始,一直持续到现在,或者刚刚终止,或者可能仍然要继续下去。(这个完成,可以理解成阶段性的,即到现在为止的阶段,完成,但还要继续下去。)如: I have been learning English for six years. 我学英语六年了。(言下之意,这个学习还在继续进行,还会继续进行)

供参考,希望对你有帮助。
第4个回答  2016-09-26
have done ,已经完成某事情
have been doing ,现在完成进行时,已经做了某件事情,但是现在仍然在做,一直在做。
用法主要区别于将来是否一直要做
相似回答