機
器
人
關於「if」
「假設語氣」是一個經常困擾學生的文法項目。當然,這是個很正常的現象,畢竟中文中不會遇到「時態轉換」的問題。在這兩個章節裡,我們將會帶大家熟悉假設語氣的各種文法:這個章節我們將探討假設語氣的時態轉換,而下個章節我們將帶大家認識更進階的用法──wish、as if 等。
在我們真的開始深入假設語氣之前,我們應該要先問一個問題:什麼樣的句子會被稱作假設語氣?只要有「if」就一定是假設嗎?其實不然,因為 if 可以引導出一個條件句──在什麼情況下會發生什麼事。這種時候,因為句子所描述的事情是有可能發生的,因此不適用假設語氣的文法。
if 表達「條件」
這種情況下,if 的文法較為單純,我們可以歸納出:
條件句:
If S + V, S + will/shall/can/may + V原
祈使句:
If S + V, 祈使句
我們可以看看這兩個例句:
If I have a car, I will drive to work every day.
(假如我有車,我到時候就會每天開車去工作了。)
If it rains tomorrow, I will stay home.
(如果明天下雨的話,我就待在家。)
這裡值得注意的是,if 所引導的副詞子句沒有未來式,所以儘管句子中的時間點是「明天」,仍然會用 it rains,而不是 it will rain。
if 表達「萬一」
再來,if 不僅可以表達「應該」,還可以表達「萬一…就…」的概念,只是後面要加上助動詞 should:
If S + should + V, S + 助動詞 + V
(助動詞可用 will/would、shall/should、can/could)
If S + should + V, 祈使句
讓我們來看看例子吧:
If it should rain, I will stay at home and watch TV.
(萬一明天下雨,我就會待在家看電視。)
If Jay should come tomorrow, please tell him to call me.
(萬一如果明天 Jay 來,請他打給我。)
當然,我們也可以將上述的句子改為倒裝句的形式。例如,我們可以將第二個句子改寫成:
Should Jay come tomorrow, please tell him to call me.
邁向假設語氣
上面所說關於 if 的用法,都是使用在「有可能發生」的情況下。但是遇到一些「不可能發生」的事情時,我們就必須要使用假設語氣了。在假設語氣之下,句子的時態必須要受到改變,我們可以先簡單地將其想成「如果與事實不符,就要往回退一格時態」,如同下圖中所示:
大概抓住它的原則之後,就讓我們開始吧!
與「現在事實」不符
如果要假設一個與現在事實相反的情境,例如此時此刻的想像、願望等,那麼句子兩側的動詞就都要改用過去式:
If + S + V過, S + 助動詞 + V
If + S + were + N/adj, S + 助動詞 + V
(助動詞須為過去式:would/could/should/might)
讓我們舉幾個例子來說明:
If Jenny had a car (子句), she would drive to work (主要子句).
(假如Jenny有車,她就會開車來上班了。)
上面這句話意味著:Jenny「現在」沒有車子,所以無法開車上班。而因為我們在句子中假設了她有車子,是「與現在事實相反」,因此 if 所引導的子句就要用「過去式」,主要句子的助動詞也要改成「過去式」,即 would/ could/ should/ might。
這裡還要注意一點:如果遇上了 be 動詞,過去式一律用 were,例如:
If he were you, he wouldn’t hurt her heart.
(假如他是你,他就不會這樣傷她的心。)
If I were rich now, I could travel around the world.
(假如我現在有錢的話,我就能環遊世界。)
當然,同樣的句子也可以改成倒裝句的形式,變成:
Were he you, he wouldn’t hurt her heart.
Were I rich now, I could travel around the world.
與「過去事實」不符
遇到假設與過去事實相反的句子時,我們一樣要將時態往前移動一格,也就是把過去式改成過去完成式,也就是 have + pp.:
If + S had Vpp., S + 助動詞 + have Vpp.
=Had S + Vpp., S + 助動詞 + have Vpp.
(助動詞用:would/should/could/might)
值得注意的是,主要句子的動詞也變成了過去完成式「had + pp.」,但因為前面有助動詞 would/ should/ could/ might,因此 had 就變回了原型動詞 have。
舉例來說:
If Jenny had had a car last year, she would have driven to work then.
(假如 Jenny 去年有車,她當時就會開車去上班了 ⇒ Jenny 去年沒有車,也就沒有開車去上班。)
If he had asked me for help, I could have helped him.
(假如他當時有向我求助,我就會幫他了 ⇒ 他當時沒有向我求助,所以我當時沒有幫他。)
當然,我們也可以把它改成倒裝:
Had Jenny had a car last year, she would have driven to work then.
Had Louis asked me for help, I could have helped him.
混和時態的假設句
目前到這裡,我們都在處理同一個類型的句子:現在 + 現在、過去 + 過去。但是有沒有可能前後的時態不同呢?其實是有可能的,舉例來說,如果要講「如果我過去有好好讀書,那我現在就會有比較好的工作了」,就是一個「過句式 + 現在式」的例子。
那如果遇到這樣的句子,要怎麼辦呢?其實只要記得時態變換的規則就可以了。就以前面的例子來說,「如果我過去有好好讀書」與過去的事實不符,因此要改成過去完成式;而「我現在就會有比較好的工作」與現在的事實不符,因此要改成現在完成式:
If I had studied harder before (與過去事實相反), I could get a better job now (與現在事實相反).
同樣的,我們可以將其倒裝,變成:
Had I studied harder before, I could get a better job now.
與「未來事實」不符
對於假設與未來事實相反的假設,用法就不單純是「將時態退後一格」了,但是仍然以同樣的邏輯思考,公式如下:
If + S +were to + V, S + 助動詞 + V
(助動詞用 would/should/could/might)
讓我們來看看一些例子:
If the sun were to rise from the west, I will marry you!
(如果太陽要從西邊升起,我就會嫁給你!)
根據常理判斷,不管是明天還是明年,太陽都不太可能「從西邊升起」,因此我們用與「未來事實相反」的假設語氣。另外,我們也可以從說話者所用的文法來判斷他的立場。讓我們比較一下這兩個句子:
(1) If I were to get into Harvard next year, I would give you anything you want.
(2) If I get into Harvard next year, I will give you anything you want.
我們可以看到,第一個句子中,說話者使用了假設語氣,而第二個句子中,則是一般的條件句。這就默默地告訴了我們,第一個說話者認為自己無法考上哈佛,而第二個說話者則認為自己有可能考上哈佛。
公式小整理
章節的最後,就讓我們來歸納一下目前所提及的五個句型吧!
非假設:if 表達「條件」
條件句:
If S + V, S + will/shall/can/may + V原
祈使句:
If S + V, 祈使句
非假設:if 表達「萬一」
If S + should + V, S + 助動詞 + V
(助動詞可用 will/would、shall/should、can/could)
If S + should + V, 祈使句
假設:與「現在事實」不符
If + S + V過, S + 助動詞 + V
If + S + were + N/adj, S + 助動詞 + V
(助動詞須為過去式:would/could/should/might)
假設:與「過去事實」不符
If + S had Vpp., S + 助動詞 + have Vpp.
= Had S + Vpp., S + 助動詞 + have Vpp.
(助動詞用:would/should/could/might)
假設:與「未來事實」不符
If + S + were to + V, S + 助動詞 + V
(助動詞用 would/should/could/might)