有些句子会回望过去,想象出一个与实际不同的版本——一个从未真正发生过的版本,比如 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 have 或 would'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 have 或 wouldn'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 have 和 might have
结果分句中默认使用 would have,但 could have 和 might 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 have、could have 或 might have——绝不用 will have)
快速检测
选择正确的形式、改写句子,或回答问题:
- If I ____ (know / knew / had known) about the delay, I would have left earlier.
- She would have passed the test if she ____ (studies / studied / had studied) more.
- 改写为正确形式:If they would have called, we would have come.
- 二者有什么区别?a. If it rained tomorrow, the match would be cancelled. b. If it had rained yesterday, the match would have been cancelled.
- 这句话是第三条件句还是混合条件句?If I hadn't missed the flight, I would be home by now.
查看答案
- had known——if 从句用过去完成时,表示想象中的过去情境
- had studied——需要过去完成时;单独用 studied(一般过去时)会使这句话变成第二条件句,与 would have passed 不匹配
- ✅ If they had called, we would have come.——if 从句中不用 would have,要用过去完成时
- a. 第二条件句——想象中的现在/将来情境(理论上仍有可能发生);b. 第三条件句——想象中的过去情境(已经结束,无法改变)
- 混合条件句——if 从句用的是过去完成时(hadn't missed),但结果说的是现在(would be home now),而不是过去
用 GrammarMama 学得更快
这篇文章只讲了一个知识点——来看看 GrammarMama 如何帮你把它变成持久的进步:
-
了解你的水平 — 快速定级测试帮你确定 CEFR 等级,让每道练习都适合你。 测试我的水平 →
-
沿着清晰的路径学习 — 按照正确的顺序练习每个主题,从 A1 一直到 C2。 查看完整路径 →
-
设定你自己的目标 — 告诉我们你学习的理由,练习内容会围绕你的兴趣展开。 设定目标 →
-
追踪你的错误 — 发现让你反复出错的规律,并彻底改正它们。 查看我的错误 →
-
积累词汇量 — 练习中遇到的单词会被保存,并通过间隔重复来复习。 打开我的词汇表 →
-
练习口语 — 随时可以用说的来回答练习,而不用打字。 试试口语练习 →
-
训练发音 — 逐词获得即时的发音反馈。 训练发音 →
-
每天练一点点 — 适合你水平的简短每日练习,让语感保持新鲜。 开始练习 →
关键要点
- 第三条件句在条件分句中使用 if + 过去完成时,在结果分句中使用 would have + 过去分词。
- 用于表达想象中的过去情境——没有发生的事情,往往伴随着遗憾或庆幸。
- 在基本的第三条件句中,would have 属于结果分句,而不是 if 从句——把 If I had known… 错写成 If I would have known…,是最常见的错误。
- Could have(假设性的可能性)和 might have(不确定的结果)可以在结果分句中替换 would have。
- 当过去的条件连接的是现在的结果时,这属于混合条件句,而不是纯粹的第三条件句。
- if 从句可以放在句首(加逗号)或句尾(不加逗号)——两种方式都正确。
- 可以与第二条件句(想象中的现在/将来情境:if + 一般过去时,would)以及更"真实"的第一条件句和零条件句进行比较。