2 虚拟语气句子的时态前后不一致

If she really cared about me, she would have called by now. 她要是真的关心我的话,现在应该已经打电话给我了。

这是一个虚拟语气的句子吧?

为什么主句用了 would have done,而从句没有用过去完成时呢?

虚拟语气句子的时态可以前后不一致吗?

谢谢专家!

请先 登录 后评论

最佳答案 2017-12-03 13:55

关心还是不关心说的都是包括现在在内的长期的情况,而不是具体一次事件。因此用陈述语气说明事实的时候要用一般现在时。虚拟语气假设与事实相反的情况时,就要用和现在事实相反的形式。主句则指打电话这个具体事件,即应该给我打过电话了,但实际没有,这是和过去事实相反。

虚拟条件句中,从句和主句可以是同一时间,也完全可以是不同时间。谓语动词根据时间选择相应的虚拟语气形式。

请先 登录 后评论

其它 2 个回答

陈才   - 英语教师
擅长:中考英语,词法问题

If she really cared about me, she would have called by now. 她要是真的关心我的话,现在应该已经打电话给我了。

(1)从句对现在时间范畴情况虚拟:从句谓语动词用“一般过去时did”

(2)主句对过去时间范畴情况虚拟:主句谓语用“would have done"

同意曾老师解答

错综时间虚拟条件句:即从句和主句的谓语动作所假设的时间错位,即指的是主句和从句表示两个不同时态,动词形式依照上述三种形式进行相应的变化。

虚拟条件句和主句动作如发生的时间不一致,主句和从句的谓语要根据各自所

指的不同时间选用适当的虚拟语气形式,这种句子叫做错综时间(虚拟)条件句。

①从句对过去虚拟和假设:谓语用过去完成时态

  主句对现在虚拟和假设:谓语用would/should/could/might do

结构:从句为:主语+had done, 主句为:主语+would/should/could/might +do

If you hadn't watched TV yesterday, you wouldn't be so sleepy now. (过去→现在)

如果你昨天不看电视,你现在也就不会这么困了。

【事实为:在过去时间里,即昨天看了电视,在现在里感觉很困。】

He would pass the test if he had taken my advice.(过去→现在)

如果他听了我的劝告,他现在会通过考试。

If I had spoken to him yesterday, I should know what to do now. (过去→现在)

假如昨天我对他说了,现在我就知道该怎么办了。

You would be much better now if you had taken my advice. (过去→现在)

如果你接受我的建议,你现在就会好多了。

If I had worked hard at school, I would be an engineer, too.

如果我在学校学习刻苦的话,我现在也会使工程师了

If they had informed us, we would not come here now.

如果他们通知过我们的话,我们现在就不会来这里了。

If you had listened to the teacher carefully yesterday, you would know how to do the exercise now. 如果你昨天认真听了老师的讲话,你现在就知道如何做这道题了。

从句yesterday说明过去,主句now说明现在

②从句对过去虚拟和假设:谓语用过去完成时态

  主句对将来虚拟和假设:谓语用would/should/could/might do

If they had left home early this morning, they would arrive in half an hour. (过去→将来)

如果他们今天一早就离开家的话,再过半小时他们就该到了。

从句说明过去,主句说明将来。

③从句对现在虚拟和假设:谓语用一般过去时态

  主句对将来虚拟和假设:谓语用would/should/could/might do

If you hesitated this moment, you might suffer in the future. (现在→将来)

如果你此刻犹豫不决,你将来会吃苦头的。

从句说明现在,主句说明将来

 

④从句对现在虚拟和假设:谓语用一般过去时态

  主句对过去虚拟和假设:谓语用would/should/could/might have done

If I were you,I wouldn’t have missed the film last night. (现在过去)

如果我是你,我就不会错过昨晚那部电影了。

If I had a bike, I would have lent it to you yesterday. (现在过去)

假如我有自行车,昨天早就借给你了。

表示说话人现在也没有自行车。从句与现在事实相反,主句与过去事实相反。

If he were free today, we would have sent him to Beijing. (现在→过去)

如果他今天有空的话,我们会已经派他去北京了。

If he knew her, he would have greeted her. (现在→过去)

要是他认识她的话,他肯定会去问候她了。

 

⑤从句对过去一直发生情况虚拟和假设:谓语用过去完成进行时态

  主句对现在正在发生的情况虚拟和假设:谓语用would/should/could/might be doing

If it had not been raining too much, the crops would be growing much better.

如果天不下太多的雨的话,庄家会长得更好。

从句表示与过去的过去一直正在进行/发生的事实相反,主句表示与现在正在进行/发生事实相反。

If he had been working hard, he would be working in the office now.

要是他工作一直努力的话,他现在已进了办公室了

 

⑥从句对过去的虚拟和假设:谓语用过去完成时态

  主句对现在正在发生的情况虚拟和假设:谓语用would/should/could/might be doing

If there hadn’t been enough rain this spring, the crop wouldn’t be growing so well now.  

如果今年春天雨水不够的话,庄稼现在不会长得这么好。

【事实是:(在过去时间里)今天春季雨水够,(现在时间里)而且庄家爱也长的很好】


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

这是错综时间虚拟条件句的用法,条件句指现在,主句指现在完成。如:

If I were not busy,I would have come.如果我不忙,我早就来了。

请参看英语语法网上的文章:

http://www.yygrammar.com/Article/201509/4175.html

http://www.yygrammar.com/Article/201506/4038.html


请先 登录 后评论
  • 0 关注
  • 3 收藏,17269 浏览
  • 江飞鱼   提出于 2017-12-02 10:57

相似问题