有些句子会回望过去,想象出一个与实际不同的版本——一个从未真正发生过的版本,比如 If I had studied harder, I would have passed the exam.,或者 If she had left earlier, she wouldn't have missed the train.。英语正是用第三条件句来表达这一点:谈论过去本可以有不同的走向,也常常用来表达对事情实际走向的遗憾。

速记公式: If + 过去完成时,would have + 过去分词 → If I had known, I would have told you. / We wouldn't have been late if the bus had arrived on time.

第三条件句表达什么

第三条件句描述的是想象中的过去——一个从未成立的条件,以及因此从未发生的结果:

  • 遗憾:If I had saved more money, I would have bought a house.
  • 错失的机会:If he had applied, he might have gotten the job.
  • 事后批评或反思:If you had asked me, I would have helped.
  • 庆幸某事没有发生:If we hadn't left early, we would have been stuck in traffic.

第三条件句涉及的时间都在已经结束、无法改变的过去:说话人想象的是一种与实际情况不同的过去版本。

第三条件句的构成

从句 时态/形式 例句
if 从句 过去完成时 If she had left…
结果分句 would have + 过去分词 …she would have arrived on time.

if 从句使用过去完成时had + 过去分词)。这比第二条件句中的一般过去时在时间上又往前推了一步,标志着这个情境不仅是假设性的,而且已经结束

  • If they had booked earlier, tickets would have been cheaper.
  • If I had seen the message, I would have replied immediately.

汉语通常用"要是……的话""如果……就……"来表达假设,不太靠动词变形来区分"想象中的现在"和"想象中的过去"——同一句"要是我知道的话,我早就告诉你了",靠的是语境和"早"这样的时间词来表明这是过去的假设,而不是靠动词形式本身。学第三条件句时,最容易出错的是忘记在 if 从句里用过去完成时,或者把第二条件句的 If I had… 和第三条件句的 If I had had… 混在一起。

结果分句使用 would have + 过去分词(在口语和非正式书面语中常缩写为 'd havewould've,但正式书面语通常写全):

  • If she had studied medicine, she would have become a doctor.
  • We would've called you if we had had your number.

逗号规则:if 从句在时,后面加逗号;结果分句在前时,则不需要逗号——这和其他条件句的规则一致。

结果分句中的 would havewouldn't have

要使结果变为否定,使用 wouldn't have

  • If I had known about the traffic, I wouldn't have driven that way.
  • She wouldn't have been upset if he had explained sooner.

在第三条件句中,想象出的结果不使用 will have——那属于 if 加过去时的另一种推测用法,即推断已经发生的事(If he left at six, he will have arrived by now,意思是"如果他六点出发了,那现在应该已经到了"),而不是这里所说的假设性过去。

if 从句也可以用 hadn't + 过去分词构成否定:

  • If we hadn't stopped for coffee, we would have caught the earlier train.
  • If it hadn't rained, the match wouldn't have been cancelled.

两个分句都可以是否定形式:

  • If I hadn't overslept, I wouldn't have missed the meeting.

其他情态动词:could havemight have

结果分句中默认使用 would have,但 could havemight have 也很常见——它们会略微改变含义:

情态动词 作用 例句
would have 说话人有把握地给出的假设性结果 If I had trained harder, I would have won.
could have 假设性的能力或可能性 If I had trained harder, I could have won.
might have 可能但不确定的结果 If I had trained harder, I might have won.

Could have 把重点放在想象中的过去里本来可能发生的事。Might have 则表明,即便在这个想象中的过去里,结果也并非板上钉钉。

第三条件句与混合条件句

第三条件句完全发生在过去:if 从句描述一个不真实的过去情境,结果分句描述一个想象中的过去后果。如果过去的条件连接的是现在的结果(If I had studied medicine, I would be a doctor now),那就是混合条件句,而不是纯粹的第三条件句了。混合条件句用的是同一个过去完成时的 if 从句,但属于一个独立的话题,通常紧接在第三条件句之后学习。

第三条件句与第二条件句的比较

这两种条件句都是假设性的,很容易混淆,但它们所指的时间不同

第二条件句 第三条件句
If I had more time, I would learn the guitar. If I had had more time, I would have learned the guitar.
想象中的现在/将来情境 想象中的过去情境
If + 一般过去时,would + 动词原形 If + 过去完成时,would have + 过去分词
不是已经结束的过去事件;想象的是现在或将来的情境 已经结束——现在无法改变

最明显的信号是动词形式:一般过去时 + would(第二条件句)对比过去完成时 + would have(第三条件句)。可以参考第二条件句,以及第一条件句零条件句——条件句体系中更接近真实条件的类型。

常见错误

  • If I would have known, I would have told you. → ✅ If I had known, I would have told you.would have 属于结果分句,不属于 if 从句——if 从句用过去完成时:If I had
  • If she had study harder, she would have passed. → ✅ If she had studied harder, she would have passed.(过去完成时需要过去分词,而不是动词原形)
  • If we left earlier, we would have caught the bus. → ✅ If we had left earlier, we would have caught the bus.(if 从句需要过去完成时,才能与过去的假设性结果 would have caught 相匹配)
  • If you had asked me, I will have helped. → ✅ If you had asked me, I would have helped.(在第三条件句中,想象出的结果要用 would havecould havemight have——绝不用 will have

快速检测

选择正确的形式、改写句子,或回答问题:

  1. If I ____ (know / knew / had known) about the delay, I would have left earlier.
  2. She would have passed the test if she ____ (studies / studied / had studied) more.
  3. 改写为正确形式:If they would have called, we would have come.
  4. 二者有什么区别?a. If it rained tomorrow, the match would be cancelled. b. If it had rained yesterday, the match would have been cancelled.
  5. 这句话是第三条件句还是混合条件句?If I hadn't missed the flight, I would be home by now.
查看答案
  1. had known——if 从句用过去完成时,表示想象中的过去情境
  2. had studied——需要过去完成时;单独用 studied(一般过去时)会使这句话变成第二条件句,与 would have passed 不匹配
  3. If they had called, we would have come.——if 从句中不用 would have,要用过去完成时
  4. a. 第二条件句——想象中的现在/将来情境(理论上仍有可能发生);b. 第三条件句——想象中的过去情境(已经结束,无法改变)
  5. 混合条件句——if 从句用的是过去完成时(hadn't missed),但结果说的是现在(would be home now),而不是过去

关键要点

  • 第三条件句在条件分句中使用 if + 过去完成时,在结果分句中使用 would have + 过去分词
  • 用于表达想象中的过去情境——没有发生的事情,往往伴随着遗憾或庆幸。
  • 在基本的第三条件句中,would have 属于结果分句,而不是 if 从句——把 If I had known… 错写成 If I would have known…,是最常见的错误。
  • Could have(假设性的可能性)和 might have(不确定的结果)可以在结果分句中替换 would have
  • 当过去的条件连接的是现在的结果时,这属于混合条件句,而不是纯粹的第三条件句。
  • if 从句可以放在句首(加逗号)或句尾(不加逗号)——两种方式都正确。
  • 可以与第二条件句(想象中的现在/将来情境:if + 一般过去时,would)以及更"真实"的第一条件句零条件句进行比较。