虚拟语气中的含蓄条件句问题

这是百科里的内容:
非真实条件句中的条件从句有时不表达出来,只暗含在副词、介词短语、上下文或其他方式表示出来,这种句子叫做含蓄条件句,在多数情况下,条件会暗含在短语中,如without…,but for…等
eg:
1:But for his help,we would be working now.
要不是他的帮助,我们还会在工作呢。
2:Without your instruction,I would not have made such great progress.
要是没有你的指导,我不会取得如此大的进步。
3:We didn't know his telephone number,otherwise we would have telephoned him.
我们不知道他的电话号码,否则我们就会给他打电话。
请问各位大虾,为什么第1句中用would ,而第二、三句却用would have呢?有规定but for与without引领的含蓄条件句中这些的不同吗?请详细回答,谢谢啦
~~~~(>_<)~~~~

1:But for his help,we would be working now.
要不是他的帮助,我们还会在工作呢。还在工作就应该表示正在工作,所以用be+动名词
2:Without your instruction,I would not have made such great progress.
要是没有你的指导,我不会取得如此大的进步。
3:We didn't know his telephone number,otherwise we would have telephoned him.
我们不知道他的电话号码,否则我们就会给他打电话。
第二第三句都是事实上这个是和过去的真实情况相反的,所以我们用虚拟语气,同时它又是表示过去的时间的所以我们用would have done的形式
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-26
第一句和第二句的主句之所以用不同的时态,不是因为but for和without的差别,而是因为主句要表达的东西发生在不同的时间。
第一句陈述与当前事实相反的情况(事实上,他帮助了我们,因而我们现在得以休息,work与否是当前的事),用过去将来进行时would be doing...
第二句讲述与过去事实相反的情况(事实上,你指导了我们,因此我们取得了很大进步,取得进步是已经发生了的事),用过去将来完成时would have done...
总的来说,虚拟语气就是“提前一个时态”,根据你要表述或假设的事情发生在什么时间,决定使用什么时态,跟引导的介词短语没有关系。
相似回答