should have done和should do等(存在should had done么?)的区别

2个回答

  • 这是情态动词的基本用法 情态动词有很多 下面我只挑比较常用的来举例 其他的用法是一样的

    情态动词的用法有两种 1.情态动词+do(动词原形) 2.情态动词+have done(动词完成时态)

    标题中的should had done不存在

    第一种结构用来表达情态动词的基本意义 比如should表应该 should do就是应该做

    must/can't(could)/may(might)/should/would...+do 必须 一定/一定不/也许/应该/想要...做某事

    第二种结构可以表达两类意义

    1) must/can't/may(might)+have done 这一类情态动词是用来表示推测的 后加完成时用来表示对过去状况的推测 即过去一定/一定不/也许发生了某事

    It must have rained yesterday.昨天一定是下雨了

    might have been 和may have been都属于这一类 都表示过去也许...两个意义基本上相同

    must have been taken也是这一类 只是变成了被动结构 表示过去一定被...

    主动结构是must have taken 意思是过去一定...

    而你说的must been taken是不存在的 应该是must be taken 也是被动结构 表示一定被...

    主动形式是must take 属于我之前提到的第一种结构 表示一定...

    2)should/could/would...+have done 这一类情态动词后加完成时是虚拟语气的一种 表示本来...(而实际上没有...) 即本来应该/能够/想要做...(而实际上没做)

    You should have got up earlier.你本来应该早点起床的(实际上起晚了)

    标题中的should have done还有后边的could have survived都是这一类

    最后提到的have to是一个情态动词组 用法是后加动词原形 have to do 表示不得不做某事 意义和must do比较接近

    had to则是have to的过去式