我们平时说话,其实一直在用“如果……就……”这个句式。比如,“如果下雨,我就不出门了。” 这句话很简单,但把它换成英语,很多人就开始头疼了。时态怎么用?will 还是 would?had 还是 have?今天我们就把这事儿彻底说清楚。
if 引导的句子,说白了,就是在设定一个“条件”,然后看这个条件会带来什么“结果”。关键在于,这个“条件”是真的还是假的,是可能发生的还是纯粹想象的。搞清楚这一点,时态问题就迎刃而解了。
我们把它分成几种常见的情况,一种一种来看。
第一种:铁打不动的事实
这种情况最简单,我们用它来描述一个普遍真理、科学事实或者个人习惯。它的特点是,只要条件成立,结果就必然发生。百分之百。
公式是:If + 一般现在时, … 一般现在时。
你看,两边都是现在时。为什么?因为我们讨论的不是“将来会怎样”,而是在陈述一个“一直如此”的事实。
举个例子:
* If you heat ice, it melts. (如果你加热冰,它就会融化。)
这是科学事实。不是明天才融化,也不是昨天融化的,它就是这么个规律。所以两边都用最简单的一般现在时。
* If I drink coffee after 5 PM, I can’t sleep at night. (如果我下午5点后喝咖啡,晚上就睡不着。)
这是我的个人习惯,一个对我来说成立的“真理”。每次都这样,是个规律。
用这种句型的时候,你脑子里想的应该是“规律”、“事实”、“必然结果”。别去想什么将来、过去,它跟具体的时间点关系不大,它描述的是一种因果关系本身。
第二种:未来可能发生的事
这是我们日常生活中用得最多的一种。我们在计划、预测或者警告。我们讨论的是一个在未来“很可能”发生的情况。
公式是:If + 一般现在时, … will + 动词原形。
这里有个坑,很多人会掉进去。中文里我们会说“如果明天会下雨,我就会带伞。” 听起来好像 if 后面也应该用将来时。但在英语里,这是个绝对的错误。
记住一条规则:在 if 引导的条件句里,不能用 will。
我们用一般现在时来“设定”那个未来的条件。你可以理解为,我们是站在“现在”这个时间点,去假设一个未来的可能性。条件本身是用现在时态来呈现的,而这个条件所带来的结果,才是发生在未来的,所以结果部分要用 will
。
举个例子:
* If it rains tomorrow, I will stay at home. (如果明天下雨,我会待在家里。)
“明天下雨”是一个可能发生的条件。我们用 if it rains
(一般现在时)来设定这个条件。结果呢?“待在家里”,这是个未来的计划,所以用 I will stay
。
* If you don’t hurry, you will miss the train. (如果你不快点,你就会错过火车的。)
这是一个警告。条件是“不快点”(if you don't hurry
),结果是“错过火车”(you will miss the train
)。
所以,下次你想表达“如果将来发生某事”,记住,if 那半句话,动词就用它本来的样子(一般现在时),别画蛇添足加个 will。
第三种:纯属想象,跟现在事实相反
现在我们进入“脑洞”模式。我们开始讨论一些不真实、纯想象、跟现在情况完全相反的事。比如“如果我是你……”(但我不是你),“如果我有很多钱……”(但我现在没有)。
这是在做白日梦,或者给别人提建议。
公式是:If + 一般过去时, … would + 动词原形。
这里的“一般过去时”是关键。它并不是指“昨天”或者“过去”,它只是一个语法标记。它在告诉你,这句话是“假的”、“不真实的”。英语用时态的后退来表示虚拟,这是个很聪明的做法。现在时表示真实,那往后退一步,用过去时,就表示不真实了。
举个例子:
* If I had a million dollars, I would travel around the world. (如果我有一百万美元,我就会环游世界。)
事实是:我现在没有一百万美元。所以这是一个纯粹的想象。had
在这里不是“曾经拥有”,而是“假如现在拥有”的虚拟信号。结果 would travel
也跟着变成了虚拟的。
* If I were you, I would take that job. (如果我是你,我就会接受那份工作。)
这是个经典句型。注意,这里用的是 were
,而不是 was
。在虚拟语气里,不管主语是 I, he, she, it,我们通常都用 were
。这算是一个固定用法,尤其是在提建议的时候。If I were you...
听起来更地道。
所以,当你想表达和现在事实相反的想象时,就把 if 后面的动词变成过去式,另一半用 would
。这就等于给你的句子打上了一个“虚拟”的标签。
第四种:对过去的悔恨或想象
这是最复杂的一种,用来谈论已经发生过、无法改变的过去。通常带着一种“要是当初……就好了”的悔恨情绪。
我们在对一个过去的“条件”进行想象,然后推测一个“本应该”发生的、同样是过去的“结果”。
公式是:If + 过去完成时 (had + 动词过去分词), … would have + 动词过去分词。
这个结构看起来复杂,但逻辑很清楚。
* had + 过去分词
(过去完成时) 本身就表示“发生在过去某个时间点之前”的动作。用在这里,正好可以表达“对已经过去的那个时间点”的假设。
* would have + 过去分词
则用来描述在那个虚拟的过去,本应该发生的结果。
举个例子:
* If I had studied harder, I would have passed the exam. (如果我当初学习更努力一点,我就通过考试了。)
事实是:我当初没努力学习,结果我没通过考试。这两件事都发生在过去,已经无法改变。had studied
指的是“考试前”那段时间的虚拟行为,would have passed
指的是“考试出结果时”的虚拟结果。
* If you had told me about the problem, I would have helped you. (如果你当初把问题告诉我,我就会帮你了。)
事实是:你当初没告诉我,所以我没帮你。这是一个对过去的抱怨或遗憾。
简单说,当你想开“事后诸葛亮”的会议,讨论那些已经尘埃落定的过去时,就用这个句型。
还有一种“高阶玩法”:混合条件句
有时候,我们会把上面讲的第三种和第四种情况混在一起用。这听起来吓人,但其实逻辑通了就很简单。
最常见的一种混合是:对过去的假设,导致了对现在的影响。
公式是:If + 过去完成时 (had + p.p.), … would + 动词原形。
你看,条件部分是第四种(对过去的虚拟),结果部分是第三种(对现在的虚拟)。
举个例子:
* If I had bought that stock ten years ago, I would be rich now. (如果我十年前买了那支股票,我现在就发财了。)
“十年前买股票” (had bought
) 是对过去的一个虚拟条件。这个条件如果成立,会对我“现在” (now
) 的状态产生影响,所以我现在会很有钱 (would be rich
)。
这种混合句型能让你的表达更精确。它连接了过去和现在,说明了一个过去的虚拟行为如何影响到当下的真实状态。
总结一下怎么用
别去死记硬背公式。你要做的,是先问自己一个问题:我想表达的这件事,是真的还是假的?是关于哪个时间的?
- 是规律/事实吗? -> 用第一种(现在时 + 现在时)。
- 是未来可能发生的事吗? -> 用第二种(现在时 + will)。记住 if 里面不用 will。
- 是跟现在情况相反的想象吗? -> 用第三种(过去时 + would)。
- 是后悔过去没做/做了某事吗? -> 用第四种(过去完成时 + would have)。
- 是后悔过去,影响到了现在吗? -> 用混合型(过去完成时 + would)。
练习的最好方法,就是用这些句型去造一些关于你自己的句子。
* (第二种) If I finish my work early today, I will watch a movie.
* (第三种) If I had more free time, I would learn to play the guitar.
* (第四种) If I had known you were coming, I would have baked a cake.
多造几个这样的句子,把这些句型和你自己的生活联系起来,慢慢地,它就不再是冷冰冰的语法规则,而是你用来表达想法的工具了。