應該如何理解虛擬語氣?

如有疏漏歡迎指正。


嗯,虛擬語氣是吧,哪有那麼複雜,來看一個小故事就明白了:話說小明要去買彩票,他老婆小紅建議他買什麼什麼號碼,但是小明沒買,結果小紅建議的號碼中了500萬。於是小明對小紅說:

  • If I had chosen that lottery combination, I would have won 5 million.

如果我買了那組號碼,我就中了500萬了。

  • If I had chosen that lottery combination, I would be a millionaire now.

如果我買了那組號碼,我現在就是百萬富翁了。

  • If I had chosen that lottery combination, I would buy you a BMW.

如果我買了那組號碼,我就給你買輛寶馬。

  • If I had chosen that lottery combination, I would be going to Maldives tomorrow.

如果我買了那組號碼,我明天就去馬爾地夫玩。

是不是跟你之前背誦的虛擬語氣從句主句搭配表不一樣?就是下面這個表格:

並不是你背誦的表格錯了,也不是上面的例句是錯誤的(根據生活常識,所有的句子你都能理解,句意沒有任何錯誤;我以我的語法功底保證,這些句子語法上也是正確的),而是你沒有真正理解什麼叫做虛擬語氣,當然也就不能靈活使用了。

回到定義:虛擬語氣是相對陳述語氣和祈使語氣而言的,陳述語氣包括陳述句、疑問句、感嘆句,祈使句就命令句。虛擬語氣是為了表示一種「虛擬」,表示願望、建議、與事實或預期相反的假設。要理解什麼叫「虛擬」,大家可以回想《武林外傳》裡面佟湘玉的經典台詞:「我錯了,我真滴錯了,我從一開始就不該嫁過來,如果我不嫁過來,我的夫君也不會死如果我的夫君不死,我也不會淪落到這麼一個傷心的地方如果我不淪落到這麼一個傷心的地方…」

她說了三個「如果」,可是另外有句話叫做「世界上的事情沒有如果」,她說的「如果」只能表達一種美好的願望,或者說無盡的悔恨,她的「如果」更應該理解為「如果……就好了」。所以,只要是表示這種悔恨感情的虛擬語氣,「if」都可以改用「if only」,或者反過來說能用「if only」的都是虛擬語氣。

最後,虛擬語氣只是整個英語語法體系的一小部分。要想真正學好英語語法,還是要了解整個語法體系,請參考:怎樣學好英語語法? - Ernest 的回答

當然,對於需要應試的各位,大家只要知道虛擬語氣用於狀語從句和名詞性從句,並了解它的常見搭配即可,即記住上面的從句主句搭配表格:

1)用於狀語從句

  • 與過去事實相反

從句:過去完成時had done

主句:would/ should/ could / might + have done

If I had gotten there earlier, I would/ should/

could have met her.

If he had taken my advice, he would not

have made such a mistake.

  • 與現在事實相反

從句:過去時(be只用were)

主句:would/ should/ could/ might + do/ be doing

If I knew his telephone number, I would tell

you.

If there were no air or water, there would

be no living creatures on Earth.

  • 與將來預期相反

從句:過去時(be只用were)或should / were to + 動詞原形

主句:would/ should/ could / might + 動詞原形

If there were a heavy snow next Sunday, we

would not go skating.

If she were to be there next Monday, I would

tell her about the matter.

If he should come here tomorrow, I should,

would talk to him.

「與將來預期相反」要多說兩句:上面兩種情況的「過去」「現在」都是對已知的事實進行反向虛擬,但是「將來」尚未發生,所謂虛擬是指對於將來正常情況的反向虛擬,也就是說這種虛擬的可能性極低,正常情況下是不會發生的,應該理解為「萬一」「just in case」,是對前面某種assertion的一種補充,一種保險的說法。比如上面的第一個例句即「萬一下周下雪(正常應該是不會下雪的)」,第二三例句即「TA要是來的話(我覺得TA不大可能會來)」。

2)用於名詞性從句

表意見、命令、要求的動詞/名詞 + that + (should)

+ 動詞原形。這種就更簡單了,只要記住下面這些詞即可。

  • 常用動詞

advise/ suggest/ insist/ request/ require/

order/ demand/ command/ decide/ recommend等

Jane』s uncle insisted that she (should) not

stay in the hotel.

The workers requested that their working conditions

(should) be improved.

It was suggested that Jane (should) have a

medical examination.

  • 常用名詞

suggestion/ proposal/ order/ advice/ demand/

requirement等

My suggestion is that you (should) send a few

soldiers to help them.

He makes the demand that she (should) leave

the place at once.


我們用虛擬語氣來明確地告訴別人:「我說的話只是我個人的一廂情願,實際情況並不是這樣的。」

要理解虛擬語氣,得先了解在什麼情況下應該使用虛擬語氣:

1. 什麼時候使用虛擬語氣?

簡單來說,虛擬語氣就是要表現出一句話是假想還是現實

所謂假想就是與實際情況相反或是不太可能實現,而現實就是與實際情況無衝突。舉兩個例子:

對於句①來說,一定是高中沒有認真學習才會說這樣的話,因此「我高中時好好學習」與現實情況是相反的,句①表示的是假想

對於句②來說,「我」肯定不可能是「你」,表示的也是假想

若將句①和句②譯成英語,則須使用虛擬語氣。

再另外舉兩個例子:

句③只是提出了一種可能出現的情況,因為之後我可能會減肥,也可能不減肥。

句④也是同樣的道理,因為他們昨天可能遇到,也可能沒有遇到。上述兩句話與實際情況並沒有衝突,所以表達的是現實

若將句③和句④譯成英語,則須使用陳述語氣,不能使用虛擬語氣。

接下來將用wish句型來舉例。

2. wish句型的虛擬語氣

wish有一個詞義是「希望」,所引導的句子一般都是和現實情況相反或是不太可能會發生的事情,此時就需要使用虛擬語氣。

  • 對現在發生動作的虛擬語氣

例如,我在公園裡遇到一個非常可愛的小朋友,於是我說:「我真希望你是我的弟弟」,用英語怎麼講這句話呢?

第一直覺可能會是這樣講:

I wish that you are my brother. (×)

可實際上,下句才是正確的:

I wish that you were my brother. (√)

因為在英語中,說話人會通過虛擬語氣來明確的告訴別人:「這個事情不是真的,這只是我個人的一廂情願」。

虛擬語氣的表達方式是:將動詞改為一般過去式,如上句中的were。

同理,當我要給媽媽打電話,但是卻想不起來電話號碼了,我會這樣講:

I wish that I remembered mom"s phone number.

(我真希望我記得媽媽的電話號碼。)

上面兩個例子都是表示說話者對當時情況的一種假想,所以我們稱其為「對現在發生動作的虛擬語氣」。

  • 對過去發生動作的虛擬語氣

那麼問題來了,我們用一般過去式來表示「對現在發生動作的虛擬語氣」,那怎麼表達對過去發生動作的虛擬語氣呢?

例如:我聽說弟弟昨天考試沒發揮好了,我會說「我真希望他當時沒有考砸」,那麼下句是正確的嗎?

I wish that he did not fail the exam!(×)

不正確,因為一般過去式did是表示對現在發生動作的虛擬語氣,將上句翻譯成中文就是「我真希望他現在沒考砸」。

所以,我們使用「過去的過去」(過去完成時)來表示對過去發生動作的虛擬,如下句所示:

I wish he had not failed the exam!(√)

因此,動詞的過去完成時形態表示的是對過去發生動作的虛擬語氣。

  • 對將來發生動作的虛擬語氣

對於與將來的現實相反或是將來不太可能發生的動作,我們會在動詞前加入情態動詞(would/might/should/could)來表示對將來發生動作的虛擬語氣,例如:

I wish that I could land on the Mars tomorrow.

(我希望明天能夠登上火星。)

[ 實際情況是:我不可能明天登上火星。]

接下來再介紹一個更為常見的句型,即「if...then...句型」。

3. 「if...then...句型」的虛擬語氣

「if...then...」句型無論是在陳述語氣中還是虛擬語氣中都比較常見。我們這裡稱if引導的句子為從句,then引導的句子為主句,使用時習慣將引導詞then省略,例如:

If I have time, I will study French.

(如果我有時間,我會學習法語。)

此句的語義與現實情況並無衝突,使用的是陳述語氣,表達一種可能出現的情況。

但如果現實情況是我每天上班到晚上十一二點,根本沒有時間去學習,那我只能這樣說:

If I had time, I would study French.

(如果我有時間的話,我就去學習法語了。)

上句使用的就是虛擬語氣,表達的意思為「我沒有時間,也沒有學習法語」。

  • 對現在發生動作的虛擬語氣

表示對現在發生動作的虛擬語氣時,「if...then...」結構的基本句型如下所示:

如上一小節所述,我們用一般過去時來表示現在發生動作的虛擬語氣,因此「if...then...」結構中的主句和從句的謂語都應該為一般過去時。

但由於主句謂語前需加情態動詞would、should、might或could表示虛擬,而情態動詞後的動詞要用原型,所以主句的謂語為動詞原型。舉一個例子:

If I knew that, I would tell you.

(如果我知道的話,我就告訴你了。 )

[ 實際情況是:我不知道這件事,也沒有告訴你。]

  • 對過去發生動作的虛擬語氣

表示對過去發生動作的虛擬語氣時,「if...then...」結構的基本句型如下所示:

我們用過去完成時表示對過去發生動作的虛擬語氣

同樣,「if...then...」結構中的主句和從句的謂語都應該為過去完成時,但因為主句謂語前需加情態動詞would、should、might或could表示虛擬語氣,所以主句謂語(動詞)就變為了「現在完成時」。例如:

If I had worked harder, I might have passed the exam.

(如果我之前努力學習,我肯定已經通過考試了。)

[ 實際情況是:我之前沒好好學習,也沒有通過考試 ]

  • 對將來發生動作的虛擬語氣

表示對將來發生動作的虛擬語氣時,「if...then...」結構的基本句型如下所示:

從句謂語前加were to或者should,主句謂語前加情態動詞would、should、might或could,就構成了對將來發生事情的虛擬語氣,例如:

If she should come, I would ask her for help.

(如果她來,我會讓她幫忙的。)

[ 實際情況是:她不太可能會來。]

  • 主句和從句時態不同的虛擬語氣

前面介紹的是主句和從句表達對同一時間虛擬的情況,實際上兩者也可以分別表達對不同時間的虛擬,例如:

上句可以譯為如果他們昨天就出發,現在應該到這裡了」。

[實際情況是:他們昨天沒出發,現在也沒到。]

再例如:

上句可以譯為「如果我們不是有個約會在下午,我現在已經去逛街了」。

[實際情況是:我們下午有約會,現在我也沒在逛街。]

所以,只是硬套公式是很難用好虛擬語氣的,我們要做的是根據所處的場景來靈活使用它。

  • 「if...then...句型」中虛擬語氣的標誌

綜合上述內容,我們可以通過一個標誌來判斷「if...then...句型」中是否使用了虛擬語氣,就是:主句動詞前是否有情態動詞would、could、should、might中的任意一個。

通過下面的五個例子來作進一步解釋:

例1:If Tom meets with Jerry, they will play tennis together.

主句中沒有情態動詞,所以例1使用的是陳述語氣,表示日常可能會出現的一種情況。

例2:If Tom met with Jerry yesterday, they played tennis together.

主句中沒有情態動詞,所以例2使用的也是陳述語氣,表示的意思是並不知道兩人在昨天有沒有遇到,如果遇到的話兩人就會一起去打網球。

例3:If Tom met with Jerry, they would play tennis.

主句中有情態動詞would,所以例3使用的是虛擬語氣,表示的是對現在發生事情的虛擬,隱含的意義是實際上兩人現在並沒有遇到,也沒有在打網球。

例4:If Tom had met with Jerry, they would have played tennis.

主句中有情態動詞would,所以例4使用的是虛擬語氣,表示的是對過去發生事情的虛擬,隱含的意思是「兩人在過去某個時間點並沒有遇到,也沒有去打網球」。

例5:If Tom had met with Jerry, they would come together.

主句中有情態動詞would,所以例5使用的也是虛擬語氣,表示的是過去和現在混合的虛擬語氣,隱含的意思是兩人在過去某個時間點並沒有遇到,現在也沒有一起過來。

至此,虛擬語氣介紹完畢,希望上述內容能對各位知友有所幫助。

如您覺得這個回答還不錯,請點個贊支持支持,多謝!

——————————————

了解更多學習英語的好方法,請戳我的專欄:英語語法其實蠻簡單


英語里虛擬語氣實際涵蓋兩大類。

一是非真實條件式,用於帶非真實條件狀語的句子,英語的基本形式是比真實時態倒退一步的做法。

二才是歐洲語言普遍的虛擬式,言外之意是希望某人做某事,英國話用should前置於動詞原形,美國話直接用動詞原型(反而存古),皆無時態變化,此外也有個別情況特意要求用「退一步」的時態。

此語式主賓表狀同等從句皆可出現,只要你是希望陳述對象付出某種行動

比較

it is important that he goes to school every day.

it is important that he (should)go to school every day.

前者是陳述一個事實很重要,後者其實是要求某人做出某種行為,而且他這麼做很重要


substantive revision 虛擬語氣 - Abe的英語課 - 知乎專欄

=======================

寫這個是因為跟很多苦逼的高考黨講過虛擬語氣,在知乎上也看到過幾個類似的提問。個人感覺國內教材和老師對於這個語法點的講解真的不算透徹,來知乎這麼久了也學到了不少,在這奉上第一篇乾貨(也就是說會有第二第三篇的哦),幫大家理解一下,順便騙騙贊漲漲粉...以下內容主要是個人理解,並有借鑒Google+高中語法書(在學校被強迫買的...自己再沒買過),沒看過特別正規的語法書,如有錯誤疏漏請指正。

發之前給別人看有人說可能學生不需要去理解而只是想記住會做題,但是我是真不喜歡這種只告訴你怎麼考好的學習方式,希望大家看完這篇文章能通過理解來記住虛擬語氣,這樣記住的時間長質量高,也會提高成績的。

【註:此文神長】

要理解虛擬語氣,首先我們需要理解虛擬語氣的本質:

它是一個語氣。

虛擬語氣是為了體現這句話想表達的內容不是真實發生的,有可能是一個不可能發生的假設,有可能是一個不確定的後果,也有可能是一個命令或建議。

語氣並不止通過人說話的聲調和聲音大小來體現,更通過用詞。中文其實也有虛擬語氣。舉個栗子:

虛擬語氣:「當初我要是好好學習,我不是現在這熊樣了。」

正常語氣:「如果我當初好好學習,現在我不會是這個熊樣。」

我勒個去,正常語氣聽著怎麼不正常?

不正常就對了。因為使用正常語氣聽上去不正常,所以該使用虛擬語氣的時候必須使用虛擬語氣。

當你該用卻沒用虛擬語氣的時候會聽上去很不舒服:

The Big Bang Theory第五季第18集有這麼一段對話,Sheldon半夜在打手鼓。

L是萊納德,P是佩妮,S是謝爾頓。

L: oh, hi, Penny, guess what? Sheldon got bongos.

啊,penny,你猜怎麼著?Sheldon買了手鼓。

P: why did you get bongos?

你買手鼓幹嘛?

S: Richard Feynman played the bongos. I thought I would give that a try.

理查德費曼也打鼓。我覺得我也可以試試。

L: Richard Feynman was a famous physicist.

(對Penny說)理查德費曼是一個著名的物理學家。

P: Leonard, it』s 3 o』clock in the morning. I don』t care if Richard Feynman was a purple leprechaun who lived in my butt.

Leonard,現在是凌晨三點喂。就算理查德費曼是個住在我屁股里的紫色小妖精我都不管。

S: penny meat if he were a purple leprechaun. Penny forgot to use the subjunctive.

(Sheldon邊打鼓邊)Penny想說的是if he were a purple leprechaun. Penny忘用虛擬語氣了。

相信大家都知道什麼If I were a girl/boy, I would...,老師都跟你們說不要用was,這是特殊用法...這個後面會講。

中文通過特定的詞(比如「要是」)來表示虛擬語氣,而英文則通過將動詞變為虛擬語氣的形式來表示(而不是有些老師說的改變時態)。經常藉助完成時had done或者 (情態動詞)+ have done,也有shall的虛擬形式should(意思不是應該,在非if引導的虛擬語氣中會詳細講解),can的虛擬形式could,will的虛擬形式would等來完成一個虛擬語氣。

以上用來幫助大家理解虛擬語氣和它存在的意義。然而要理解虛擬語氣必須要先好好理解以下幾個內容。

I:have done的意義

老師說過現在完成時指的是持續到現在的動作或者過去的事對現在產生了影響,所以畫成圖就是:

(請忽略書寫...)

很多人估計都不理解啥是「對現在的影響」,其實這個很好理解:【important】

現在完成時表達的對現在的影響在很多時候(不是所有時候)就是一件事因為它在過去發生了,所以現在我們在這談論它。描述出來的事件與用過去時沒有太大的區別。

大家有機會學德語的話會知道,在德語書面語中用過去時來表達過去發生的事,在口語中用完成時表示過去發生的事。意思不變。

而且,無論是對現在的影響還是持續到現在,現在完成時的動作的開始時間都是在。過。去。

在虛擬語氣中,完成式經常可以想作過去式。為什麼要這麼想下面會講到。

II:如何理解were/should/would/could/might

相信很多初高中的老師都會講這些單詞是過去式,其實不是。在虛擬語氣中,Were/should/would/could/might是be/shall/will/can/may的虛擬語氣形式,只不過湊巧和be的第二人稱/複數過去式,shall/will的過去式長得一樣而已不要把他們理解成過去式,千萬不要。這個下面會更加詳細的講。

為了防止有人不理解:be的原型是be,第二人稱是are,複數還是are,過去式的複數是were,任何人稱或單複數的虛擬語氣形式還是were。

明白嗎?它長的是一副過去式複數的樣子,但是它表達的意義是虛擬語氣。所以be動詞在虛擬語氣中是were不是由其他什麼單複數人稱決定的,只是因為它是be的虛擬語氣形式。

接下來詳細講一下各種情況下的虛擬語氣。

If引導的虛擬語氣

這個在見到的和考試考到的都很多。首先我們來理清一些術語。

在一個if引導的虛擬語氣中,if引導的那個從句叫做條件狀語從句,而沒有if的那半部分是主句。條件狀語從句給出了條件,而主句所描述的就是這個條件造成的結果

例:上文例子中我好好學習是假設的條件,我不是現在這個熊樣是這個假設條件造成的結果

這部分會分三條解釋對if引導的條件狀語從句,也就是條件的假設

分成三種來講:對過去的假設,對一般時的假設,對將來的假設。

同時,以上三種情況下有可能出現三種主句,也就是假設條件下造成的結果:假設下過去的結果,假設下現在的結果,假設下將來的結果。

一:對過去的條件的假設(從句)

●首先舉一個主句中對過去結果的假設。

如果昨天沒有下雨,我們(昨天)就可以比賽了。

If it had not rained yesterday, we could have had a game.

注意這句話假設的是之前比賽,比如有人問你怎麼聽說你昨天沒去比賽去上網了啊,你說別提了,要不是昨天下雨了我們昨天就可以去比賽了。

●把它改成對現在結果的假設就是:

如果昨天沒有下雨,今天我們就能比賽了。(大概是操場被淹了水還沒退,嗯這個不重要)

If it had not rained so heavily yesterday, we could have a game now.

為什麼要用had not rained和could have had?

過去完成時在這裡有兩層意義,一層是時態上一層是語法上。注意時態上的大家稍微一理解就好,不屬於虛擬語氣的範疇。

(繼續忽略書寫...其實只是我的電腦桌太小寫字的姿勢不對,嗯就是這樣)

如果沒有完成時,我們很難表達過去的過去或者將來的過去。有了完成時就一切好說了。Have done是過去時,過去的過去怎麼說?把have變成had唄。將來的過去怎麼說,前面加個will唄。

把這兩個句子做一個對比,再結合我剛才說的完成時表示的是過去發生的事,可以看出來第一個句子說的是可以在過去的時間時舉行比賽,所以影響到昨天不能比賽是過去的過去的事情,我們用had rained。然後主句中,could是情態動詞can的虛擬語氣形式,已經是could了,不能再變成過去式了,所以如果要表達「過去可以」的意義,而could後面的動詞又必須接原型,所以需要用完成時來表示過去發生的事。所以我們使用could have had。這個規則同樣適用於should/would/might。

有人就問為什麼第二個句子影響到今天不能比賽還是用過去完成時而不是現在完成時啊,這裡就是語法上的意義:用過去完成時來代表虛擬語氣。過去式或完成時的虛擬語氣是過去完成時。Be/can/shall/will用were/could/should/would來表示虛擬,現在完成時用had done,過去完成時來表示虛擬。凡是if條件狀語從句中過去發生的事在虛擬語氣時用過去完成時。(第一個句子可以直接如此理解,寫上是希望大家能從更多的角度去看這個句子。)(以後應該會寫一個時態的帖)

在第二個句子的主句中則簡單的用could have即可。在這兩個句子中,could不是過去式而是can的虛擬語氣形式。所以這個句子是說現在可以舉行比賽,要是把could理解成can的過去式我就只能呵呵了。

事實上,雖然我們說could是can的過去式,would是will的過去式,但是在實際應用中,除了在從句中受到了主句時態的影響,幾乎不會用could/would來表示過去可以/過去會。你可以說I can run.,但是如果你用I could run.,怎麼聽都不會是在說我過去可以跑,而只是在表示一種可能性,在做一個假設,說別人問你有人打你怎麼辦你說啊,我可以跑(也可能跟他打)(在這裡其實can也行,只是在舉一個可能的情形)。你可以說I will run.,但是如果你用I would run.,怎麼聽都不會是在說我過去將要跑,而也只是在表示一種可能性,說有人打你怎麼辦,我大概會跑吧。

以could為例我們看看牛津英語詞典是怎麼解釋的:

could

modal verb past of can.

1.used to indicate possibility: they could be right | I would go if I could afford it.

2.used in making suggestions or polite requests: you could always ring him up | could I use the phone?

3.used to indicate annoyance because of something that has not been done: they could have told me!

4.used to indicate a strong inclination to do something: he irritates me so much that I could scream.

雖然一開頭說是情態動詞,can的過去式,但是接下來的四個意思中:用來表示有可能、用來建議或禮貌的要求、用來表示因為某事沒有被完成的生氣、用來表示強烈做某事的願望,這四個意思(當然肯定有其他用法只是沒有被列出),沒有一個是表示事件發生在過去。後面的例句全都是虛擬語氣。相信大家通過語感都可以感覺出這些句子中換成can會彆扭,實際應用中也會這麼用。所以如果你會用could的話,其實你們已經用了很久的虛擬語氣了。

(怎麼樣,突然知道自己用虛擬語氣用了這麼多年還用對了,是不是感覺自己英語學的還不賴?)

●對現在結果的假設還可以看最開始的例句。

「當初我要是好好學習,我就不是現在這熊樣了。」

「如果我當初好好學習,現在我不會是這個熊樣。」

If I had studied harder back then, I wouldn』t be so wretched now.

If I studied harder back then, I will not be so wretched now.

(wretched: 悲慘的,地位低下的,不幸的,這個詞其實不好翻譯)

第二個句子聽起來就很彆扭。什麼?你聽起來一點都不彆扭?那是你語感不好。

說正經的...在假設過去時,過去發生過的事是無法改變的當初我就是沒有好好學習,所以需要用虛擬語氣來表示這件事的不可改變。看看第二個句子的主句: I will not,有沒有一種很自信的感覺?你只是在假設啊你為何如此自信?什麼?你就是這麼自信?你當初好好學習就不會是現在這熊樣了?雖然說人丑就該多讀書是正確的,但是你以為多讀書了你就不醜了嗎?

正經!!...首先就算你不用虛擬語氣,好好學習是過去發生的事,你是不是現在這熊樣都是在那之後發生的事,所以主句首先是一個過去將來時,would。這裡因為是假設的,過去的事情是無法改變的,所以更應該用虛擬語氣would來表示此事的不可能性。

同時造成現在的結果和將來的結果形式都是一樣的,都是would(當然也有可能是could/should等)。

●所以第三種,對將來結果的假設

同桌(幸災樂禍地):如果你剛才背對了這首詩,今晚回家你就不用抄十遍了。

If you had just recited this poem correctly, you wouldn』t need to copy it for ten times tonight.

如果是背之前他在跟你說,而且他認為你一般背不出來,就可以說:

If you recited this poem correctly, you wouldn』t need to copy it for ten times tonight.

如果你沒做作業,老師本來想懲罰你,但是想給你次機會,就可以說:

If you (can) recite this poem correctly, you won"t need to copy it for ten times tonight.

這個自己理解應該都沒有問題了吧,首先if的從句中用過去完成時來表示虛擬語氣,主句中用will的虛擬語氣形式would來表示虛擬語氣。

總結:記住因為你假設的是過去發生的事,所以你假設的「當初我好好學習」「昨天沒下雨」都是不可能發生的,所以「我不是這個熊樣」「我們可以比賽」「不用抄十遍」也是不可能發生的。

在假設過去的情況是,if引導的條件狀語從句使用had done的形式來表示虛擬,而主句視情況,在假設對過去的影響時使用would have done,對現在或將來的使用would do的形式。

二:對一般時條件的假設

這部分分兩種情況,造成現在的結果和將來的結果

●第一種情況是一般時的假設條件造成的一般時的假設結果(說得我自己都繞...在後面用例句講一下)

要是我是個女的,我就應該去女廁所而不是男廁所(劃線部分是為了適應英語部分的語感加上的)。

If I were a girl, I would need to use lady』s room rather than man』s.

如果我是個女的,我應該去女廁所而不是男廁所。

If I』m a girl, I need to use lady』s room rather than man』s.

注意這兩個句子,一個使用虛擬語氣,一個不使用,所傳達的意義是完全不同的。第一個是在假設我是個女的,因此(除了你去做變性手術以外)是不可能發生的。而第二個句子只是在陳述一種情況,女的應該去女廁所。

再舉個例子:

如果太陽不存在,那也就不會有月光了。

If sun didn』t exist, there would also be no moonshine.

注意,一般動詞的虛擬語氣形式的樣子就和它的過去式一樣,但是依然是作為它的虛擬語氣形式而不是它的過去式使用的。所以他表達的不是過去式的意思,僅僅是表達假設。

●第二種情況是造成將來時的假設結果。

If there were no water on earth, tomorrow would not rain.(原諒我沒有想出實用的例句...)

以上句子的主句都使用would,原因和之前講的都一樣,不再贅述。

要注意的是其實對一般時條件的假設也可以造成對過去的假設結果...但是因為不常用所以僅提供一個例句供大家練習理解:

If there were no gravity, that little stone would not have fallen down.

相信大家可以很容易的理解造成將來時和過去時的結果的例句和他們用詞的原因了。

總結:對現在假設的事情同樣不可能,與對過去的假設相同,是不可能或者幾乎不可能發生的。

●對將來的假設

對將來的假設和上面兩種情況不一樣,你假設的事情是有可能發生的,不過幾率不大如果想表達大概率的事件會用正常的主句將來時/情態動詞,從句現在時。

栗子:

如果我明天來的話我會帶上我的筆記本。

If I came/should come/were to came tomorrow, I would bring my laptop.

If I come tomorrow, I will bring my laptop.

要注意,前後兩句話表達的語氣是截然相反的。虛擬語氣中對將來的假設雖然有可能發生,但是用的時候表達的意思是「我一般不會做這件事情,但是如果我做了的話,我會怎麼樣。「所以第一個句子想表達的準確含義是「我明天一般不來,不過我來的話我會帶著我的筆記本。」

表示將來的從句中有可能用過去式、should或者were to,這三個詞所表達的意思略有不同,如果用were to表示這件事基本沒戲,should的話表示有一定可能,過去式的話可能性更大一些。

而第二句子在這裡就不彆扭了,也很自信了「我明天來的話我會帶著我的筆記本。」表示的是很大概率的事件。請運用你們以前學過的知識自行理解。

當然對過去的假設在某種情況會造成對過去的影響,比如

If he were to come, he would have called me.

如果他要來,他肯定已經給我打電話了。

相信不難理解。

-----------------------------------------小分割線------------------------------------------

到目前為止感覺如何?差不多都能理解?來,讓我們看一個例句。

Jenny would never have believed that her article was so controversial(有爭議的) were it not for the outpouring of correspondence(通信) which followed its publication.

相信很多老師都講過,但是考試應該不會考這個東西,你們也不會去用它。在if引導的虛擬語氣中,可以省略掉if,將were/should/had提前。

上面那個句子可以改成完整的Jenny would never have believed that her article was so controversial, if it were not for the outpouring of correspondence which followed its publication.

不難理解了吧?不難理解說明之前講的你差不多已經明白了。

再舉一個這樣的栗子:

Had I taken that course, I could have scored higher on the test.

如果當時我參加了那個課程,我可能會考的更高一些。

==============================大分割線==============================

其他形式的虛擬語氣

一:首先是和if引導的條件狀語從句很像的:條件狀語(沒有從句)的虛擬語氣。#據說這叫含蓄條件句##whocares#

如果是個從句的話會是這樣:If there were no air, human wouldn』t be able to live.

而含蓄條件句Without air, human wouldn』t be able to live.

不難理解吧?嗯?嗯?

同樣的下面這兩個句子也不難理解:

In that case we could have achieved our goal.

要是那樣的話我們肯定就達成目標了。

In that case指的是假設的另一種情況下。

Under that condition we could have lived more comfortably.

如果在那種情況下我們本可以過的很舒適。

和上面一樣的理解方式。

注意,虛擬語氣的應用最重要的就是邏輯的判斷。當能夠翻譯成「本可以」,「要是」,往往這個句子是一個虛擬語氣,而當你想表達「本可以」,「要是」的意思是,也一定要使用虛擬語氣。

二:

我說過的虛擬語氣經常藉助should來完成假設,而should是shall的虛擬語氣形式而不是應該的意思。

事實上,你每次用should,都是在用虛擬語氣。就和之前講的could/would一樣。

整天用虛擬語氣,是不是感覺自己的英語水平又上了一個檔次?

I should do that.

這是在說我應該去做那件事,如何用虛擬語氣理解??

如果你要做,首先會是將來,其次你有可能做,但不一定會做。其實算是一種對將來的假設,只不過沒有if條件狀語從句。而且假設的事情發生的幾率是不一定的,不像if從句中對將來的假設那樣發生幾率小。

我們把這個句子換成一個正常的語氣,I shall do that.首先shall也是表示將來時。和will不同的是,Shall很多時候表示expressing a strong assertion or intention或者expressing an instruction or command,,表達強烈的要求和目的或者表達指導或命令。而將shall變成虛擬語氣形式should,語氣就變得柔和的多,也將整個句子變成了虛擬語氣。

I should do that.

大概是因為Should的語氣柔和(我猜的),現在用的比Shall多得多得多,所以根據語境也就發展出了自己的意思:應該。

當然要是換成I would do that或者I could do that,相信大家憑我上面對這兩個詞的描述也可以理解。這些都是虛擬語氣。

前面還說過要注意完成時的應用,現在來看:

I should have done that!

直譯:我應該已經做了那件事。

好好來理解:我要是現在已經做完那件事了就好了。

這裡面暗示了:如果要做的話,應該是過去做,但是因為已經過去了,所以你不可能做那件事。和if引導的對過去的假設基本一致。

同樣,I could have done that.我本可以做那件事的(沒做真是可惜)(或者但是某種阻礙種種原因沒做),I would have done that,要我的話我會做那件事。當然這兩個句子還有其他意思就不贅述了。

should的特殊性一個是會用在if條件狀語從句中,could和would只使用在主句中。另一個是should在很多句子中還會省略。

I suggest that he (should) study.

Is it essential that we (should) be there?

Don recommended that you (should) join the committee.

我建議../我們去重要嗎?/Don推薦..的情況下,如果he study, we be there or you join the committee,如果這些事情發生,一定是發生在將來的。我建議你去做什麼事,說明你還沒有做,如果你要做,一定不是過去做,也不是我說話的時候正在做,而是我說完你考慮完我的建議之後做。

再一次強調,Should是Shall的虛擬語氣形式。除了我們平時最常用的應該意思,在其他的虛擬語氣中不要把Should當做應該的意思。

所以在以上例句中使用should來完成虛擬語氣,而在虛擬語氣中should經常可以省略,但是省略後後面的動詞仍然是原型。

注意,之前講的省略if條件狀語從句中,如果should出現在從句中,should不能省略。

舉栗:

If they should come here today, I would talk to them about this essay on subjunctive.

Should they come here today, I would talk to them about this essay on subjunctive.

當然像以上舉得這種不明顯的虛擬語氣還有很多形式,除了用should/would/could,常常用過去完成時,隨便舉兩個栗子:

I wish I had been there!

If only I had taken your advice.

再多的就不舉了...舉不完的也沒有什麼意義。

只要大家判斷好邏輯,想想說的話是不是一個假設的情況,然後使用在if條件狀語從句中講的那些形式規則,就可以看懂/寫出正確的虛擬語氣。

基本上就是這樣,希望能幫到大家。=v=當然題主對英語語言的理解可能沒有那麼深,如果有疏漏之處請指正。

(PS:吐個槽,知乎的排版真是有很多槽點啊...除了圖片無法調整...word上的粗體下劃線還不能直接複製過來...然後?出guo都會被審核我擦...)


上篇主要介紹虛擬語態的由來

下篇主要介紹虛擬語態的使用

我們每天吃喝拉撒睡的世界,我們稱

  • 現實世界

但宇宙中還存在著無數個

  • 平行世界

現實里沒發生的事情

  • 會發生在平行世界裡

比如:

現在中,你每天睡6個小時,其實在另外的平行世界裡,

你也許每天睡18個小時,也可能每天睡一個小時

平行世界裡發生的事情

  • 現實中也就不會發生了

比如

在某個平行世界,你有1套10000平米豪華別墅

現實中呢,你就別指望有這套別墅了,你住在小出租屋裡

————————————————————

之前介紹了各種基本句型、語法都是

  • 在講現實里的故事
  • 總得有一個語法去講平行世界

那就是虛擬語氣

————————————————————

虛擬語氣

特徵:

  1. 發生在平行宇宙里的故事
  2. 按照現在這個趨勢,估計這件事情未來也只會發生在平行宇宙里

屬於第1類的

  • 發生在平行宇宙里的故事(現實里不可能)

現實世界裡:

你出生後,你父母給你取名:(你自己的名字)

某一個平行世界裡:

你出生後,你爹說,孩子啊,你就叫王富貴了

————————————————————

現實世界裡:

你去買彩票,沒中獎

某一個平行世界裡:

你去買彩票,刮開發現中了一千萬

————————————————————

現實世界裡:

你參加某次考試,監考老師特別嚴格

某一個平行世界裡:

你同樣參加這個考試,老師把卷子發下來,上面附帶標準答案

耐心地介紹:大家一個一個來,不要著急、慢慢抄

————————————————————

屬於第2類的

按照現在這個趨勢,估計這件事情未來也只會發生在平行宇宙里

  • 學渣甲,第二天高考,滿分被北大錄取

這個事情只會發生在某個平行世界

所以現實里不可能

If he were to be the top scorer···

如果他將成為高考狀元···

言下之意:

  • 我認為他成為狀元的機率極小,現實中不可能。
  • 相信我,在另一個平行宇宙里,明天他會成為狀元的!

虛擬語氣

通過謂語動詞的特殊形式來表示:現實中不可能發生,卻發生在平行世界裡的事情

虛擬語氣是平行世界

平行世界與現實世界不一樣

這個不一樣的標誌就是

  • 故意的語法錯誤

因為

  • 現實中要求正確的語法
  • 那我犯點語法錯誤,不就是平行世界了嘛
  • 因為平行世界與現實不同,所以語法就不能是對的嘛

犯點語病的方法:

  • 把常見時態錯位,往後退一格
  • 不管am is are這些搭配,全部用were
  • 什麼will、can、shall,全用would、could、should

這樣就跟正確的語法不一樣了

就成了虛擬語氣了

就可以去圖畫平行世界了

——————————————

——————————————


答案分四部分,第一部分利用組合計算出if引導的虛擬語氣的數量,站在整體的角度指出平時使用到的虛擬語氣只是冰山一角;第二部分是助動詞的用法,這部分對於理解if引導的虛擬語氣的主句有決定性作用,不得不講;第三部分和第四部分正式進入虛擬語氣的講解,第三部分先從規則情形(if引導的虛擬語氣)入手,闡述虛擬語氣的邏輯推理,第四部分用第三部分的邏輯推理來分析各種不規則的虛擬語氣,達到舉一反三的目的。感謝 @王永豪 的部分例句。

首先說明虛擬語氣(subjunctive mood)的概念,它表達的是「非事實」的情況,是一種「說反話」的語氣,表示所說的話和事實相反。比如:

If I were you, I would click on the Like button to support this answer. (我要是你的話,我就點贊支持這個答案。)

事實上我不可能是你,也不可能自己給自己點贊,所以這個句子表達的是「非事實」的情況,是一種「說反話」的語氣,也就是虛擬語氣。

一、if引導的虛擬語氣的數量

(一)16種時態

「時態」中的「時」指時間,包括現在(1)、過去(2)、將來(3)、過去將來(4=2+3); 「態」指狀態,包括一般(A)、進行(B)、完成(C)、完成進行(D=B+C),於是,基本時態有4^{2} =16種。

(二)2種語態

「語態」有主動語態和被動語態,語態的公式:be done。

(三)16種基本時態衍生出32種形式

一旦引入語態這一概念,每一種「時態」都有兩種「語態」, 16種基本時態就可以衍生出16×2=32種形式。

(四)if引導的虛擬語氣的數量

有N種時態,就有N^{2} 種由if引導的虛擬語氣。

如上所述,有16種基本時態,就有16^{2} =256種虛擬語氣形式。

一旦引入語態這一概念,16種基本時態可以衍生出32種形式,就有32^{2} =1024種虛擬語氣形式。

以上由if引導的虛擬語氣的數量是理論上的推導,實際使用中,並沒有那麼多種虛擬語氣形式,我們取4種最常用的時態(一般過去式、一般現在式、一般將來式、現在進行式)進行組合,則有4^{2} =16種由if引導的虛擬語氣形式。

在正式講解虛擬語氣之前,我們還有必要了解一下【助動詞】,它對於理解if引導的虛擬語氣的主句有決定性作用。

二、助動詞

(一)助動詞的概念

所謂助動詞(auxiliaries),指的是一種用來輔助動詞、構成動詞片語的詞類。

(二)助動詞的分類

1.分類

助動詞可粗分為文法助動詞與語氣助動詞兩大類。

所謂文法助動詞,指的是像否定句加上的don』t、疑問句加上的do、以及完成式加上的have之類。Do與don』t配合原形動詞構成動詞片語、have則配合過去分詞構成動詞片語。這些文法助動詞是非常基本的用語,在此不再贅述。

比較需要探討的是語氣助動詞(modal auxiliaries),也就是大陸說的情態動詞,台灣文法取之語氣助動詞,我們取台灣文法的稱呼。語氣助動詞,配合原形動詞構成動詞片語,用來表達「條件語氣」(conditional mood),這是一種帶有「不確定」意味的語氣。試比較下面兩個句子:

①It is
raining out there.(外頭在下雨。)

②It may be
raining out there.(外頭可能在下雨。)

第1句的動詞is表現出「陳述語氣」(indicative mood),這是用來敘述事實的語氣,亦即:外頭「真的」在下雨。第2句的動詞片語中用上了語氣助動詞may,配合原形動詞be來表達「條件語氣」,亦即:外頭「可能」在下雨。在動詞片語中加上語氣助動詞,就可以用來表達這種帶有「不確定」意味的「條件語氣」。

2.常用的語氣助動詞包括:

must

will/would

should

can/could

may/might

……

(三)語氣助動詞的兩種用法

同樣一個語氣助動詞,可以有兩種不同的用法,一般用法和猜測用法。我們拿出其中一些語氣助動詞來說明這兩種用法的不同之處,其他語氣助動詞舉一反三。

1.一般用法

I can drink
a dozen beers now.(我現在可以喝一打啤酒。)

語氣助動詞can用在這裡,表示現在「有能力,有權利」,即,現在我有能力喝下一打啤酒。

Last night there
was something wrong with my stomach, and I couldn』t even finish one
beer.(昨天晚上我肚子有毛病,連一瓶啤酒都喝不完。)

語氣助動詞could用在這裡,表示過去「有能力,有權利」,加了not否定之後,即,昨晚我沒有能力喝下一打啤酒。

以上can/could可以表達「有能力,有權利」,也就是一般字典上查得到的翻譯,這稱之為語氣助動詞的「一般用法」。語氣助動詞在一般用法中,具有現在時間與過去時間的差別。

但是,could也可以用在現在時間,例如:Could you please help me with my
homework?(能不能拜託你教我做功課?),時間就是現在,採用can的過去拼法could,並非表示過去時間(說的是過去拼法,不是說過去時,過去拼法不等同於過去時),而是要表現特別「客氣委婉」的語氣。

2.猜測用法

除了上述的一般用法,語氣助動詞也都可以用於「猜測」。用於猜測時,must和should這兩個詞在拼法上沒有變化,至於will/would、can/could、may/might這三對,雖然拼法有變化,可是並不表示時間(即:已經完全沒有表達時態的功能),而是語氣的變化:每一對的後者比前者更加不確定。例如:

①The doctor
thinks it can be AIDS.(醫生認為可能是艾滋病。)

②It could
be
anything—AIDS or a common cold.(還看不出來是什麼病——可能是艾滋病,也可能是感冒。)

例1中的can be是不確定語氣,表示有這個可能,但還不一定。例2中的could be並不表示過去式,兩句話的時間一樣,都是現在時間,差別在於could表示更加不確定的語氣。

語氣助動詞用於猜測時,不論是must、should這類在拼法上沒變化的詞,還是will/would、can/could、may/might這類在拼法上有變化的詞,都無法明確表達過去時,過去拼法只能表達語氣上更加不確定罷了。

那麼語氣助動詞用於猜測時,如何表達其過去時?我們知道,一來語氣助動詞的過去拼法不代表過去,只表達語氣上更加不確定,二來助動詞後面要用原形動詞,此時動詞的過去式無處安置,即直接用動詞的過去式來表達一般過去式是不可能的,所以語氣助動詞要尋找一種特別的方式來表達過去時間,由於受「助動詞後面要用原形動詞」的限制,我們只能妥協地藉助「完成式」來表達過去。

①It may
rain
any minute now.(隨時可能會下雨。)

②It may
have rained
a little last night.(昨晚可能下過一點雨。)

例1是對現在或者未來的猜測。如果要對過去(last night)做猜測,改成might rain 並沒有用,因為might只表示更沒把握的語氣,並不是過去式,只有藉助完成式may have
rained (可能下過),才能表達對過去的猜測。

其實,現在完成式的動作的開始時間就發生在過去,藉助完成式來表達過去是合適的。例如:

You can』t enter now
because the concert has already begun.(你現在不能進場,因為音樂會已經開始了。)

這個句子並沒有明確交代音樂會是什麼時候開始的,只說「已經」開始。再從主要從句的時間副詞now來看,截止時間就是現在。換句話說,音樂會是在「現在」之前已經開始,即,開始的動作發生在過去。

三、if引導的虛擬語氣

由【一、if引導的虛擬語氣的數量/(四)if引導的虛擬語氣的數量】可知,我們取4種最常用的時態(一般過去式、一般現在式、現在進行式、一般將來式)進行組合,則有4^{2} =16種虛擬語氣形式。

認真的讀者可能已經讀了表格裡面的例句,會發現,比如主從句都是一般過去式的虛擬語氣,為什麼從句是過去完成式,說好的一般過去式去哪兒了?別急,等你讀完接下來在每種形式中的推理之後,便會明白。

在每一種由if引導的虛擬語氣中,if引導的從句叫做條件狀語從句,而沒有if的那部分是結果主句。條件狀語從句給出了條件,結果主句給出了這個條件造成的結果。比如:

If I had studied
harder back then, I would not be so wretched now.(如果我當初好好學習,現在就不是這個熊樣了。)

上例中,「我好好學習」是假設的條件,「我不是現在這個熊樣」是這個假設條件造成的結果。

以下詳細講解每一種形式。

(一)從句是一般過去式的條件假設

1.主句是一般過去式的結果

If it had not
rained
yesterday, we could have had a game.(如果昨天沒有下雨,我們昨天就比賽了。)

整句話的潛台詞就是,昨天下雨,昨天我們沒有比賽。所以,不能用「敘述事實」的語氣If it didn』t rain yesterday, we would have a game.(如果昨天不下雨——說的是昨天不下雨,虛擬語氣的潛台詞是昨天下雨;那麼我們打比賽——說的是我們打比賽,虛擬語氣的潛台詞是我們沒有打比賽)來表達,一旦這麼表達就回不到「非事實」的虛擬語氣了。那麼應該如何表達呢?

英語中的語氣可以通過說話者的語調、聲音大小、用詞的改變等來體現。

「事實」語氣(非虛擬語氣)用原時態,為了與「事實」語氣區分開來,我們想要表達「非事實」語氣(虛擬語氣)就不能用原時態。那應該怎麼辦呢?我們從虛擬語氣的含義入手來分析,所謂虛擬指的是與事實不符,既然如此,在虛擬的時候就需要對事實做退一步的陳述,想要退一步,那麼從句的動詞就退後一個時態(形式)來表達虛擬(目的)。此時,從句在形式上通過改變動詞的時態來達到表達虛擬的目的,也就是說,一旦虛擬語氣中出現時態,只是為達到虛擬的目的而採用的形式(手段),並非真正意義上的時態,換句話說,虛擬語氣的本質是一個「非事實」語氣,並不是其他老師講的改變時態,改變時態只是手段,不是本質,更不是目的。

所以,從句的時間(yesterday)是一般過去式,動詞的一般過去式didn』t rain後退一個時態(即:過去的過去就是過去完成式had not rained)來表達「非事實」的虛擬語氣。

再來分析主句,主句說的是:我們昨天就比賽了,表明主句的時間也是過去。既然從句的動詞後退一個時態來表達虛擬,主句的動詞have需不需要也後退一個時態(即:過去完成式had had)來表達虛擬語氣呢?

假設我們按照其他老師講的,主句的動詞也後退一個時態,主句本應是一般過去式had,後退一個時態(即:過去完成式had had),也就是直接在助動詞could後面加上had had,可是助動詞would後面要加原形動詞have,這個句子就沒法表達了呀!。

看到這裡肯定又有人發問,那我把would視為語氣助動詞,不代表過去時間,但是助動詞would後面要加原形動詞,我只能妥協地藉助現在完成式來表達過去,也就是would+have had,這不也可以解釋得通嗎?對於這樣的抖機靈,我只能說你碰上狗屎運了,正確的主句動詞的形式只是碰巧跟你的一家之言長得一樣,我換個句子來講,就可以輕易反駁你。請看【三、if引導的虛擬語氣/(一)從句是一般過去式的條件假設/2.主句是一般現在式的結果】的例句,If it had not rained
so heavily yesterday, we could have a game now.(如果昨天沒下雨,現在我們就能比賽了。)從句和前面分析一樣,無需贅述,我們重點分析主句,主句說的是一般現在式,我們現在就能比賽了,按照你的抖機靈就是,把would視為語氣助動詞,主句動詞的一般現在式have後退一個時態(即:一般過去式had),可是由於助動詞would後面要加原形動詞have,這個句子就沒法表達了呀!所以你的發問也就被我反駁了。

綜上所述,主句不能後退一個時態來表達虛擬,這是為什麼呢?這是因為我們把would視為語氣助動詞,通過語氣助動詞的猜測用法來表達極端不確定的含義(不確定語氣是條件語氣,但不確定的極端就是非事實,也就是虛擬語氣),也就達到實現了虛擬的目的,也就不再需要通過改變動詞的時態來實現虛擬了。如果主句還後退一個時態來表達虛擬,語氣助動詞的猜測用法又可以表達虛擬語氣,那就是一個主句用了兩個虛擬,是錯誤的!

昨日不再來,他們也不可能回到昨天去打比賽,為了猜測(昨天不下雨就)可以打比賽,只能使用語氣助動詞can/could來表達「有能力,可以」,can/could在拼法上雖有變化,可是並不表示時間(即:沒有表達時態的功能),而是語氣的變化:could比can更加不確定,也更加委婉。既然語氣助動詞could在猜測用法中無法表達過去時間,又由於助動詞後面要用原形動詞,此時如果用動詞的一般過去式來表達過去是不可能的,所以語氣助動詞要尋找一種特別的方式來表達過去時間——由於受「助動詞後面要用原形動詞」的限制,我們只能妥協地藉助現在完成式來表達過去,即:主句用we could have had a game來表達過去。

看到這裡,較真的讀者會問,既然主句可以通過語氣助動詞的猜測用法來表達極端不確定的含義,也就是不再需要通過改變動詞的時態來實現虛擬,那麼從句為什麼不同樣使用這種方法來表達虛擬意味,而偏偏要通過從句的動詞後退一個時態來表達虛擬?答案仍然蘊藏在助動詞裡面。在虛擬語氣的條件從句(即if從句)中,表示現在和過去時間的都不可以有助動詞存在,這是因為要先把假設的條件(即if從句)當真,在這個確定的基礎上, 才能推論出結果(即結果主句),既然要把條件從句當真,所以從句不能用到表示不確定意味的助動詞;只有條件從句中的未來時間,因為尚未發生,無法完全排除不確定因素,所以用should來表示可能性極小的狀況(後面會講到),用were to來表示絕無可能的狀況,這是條件從句中唯一會見到助動詞的地方。

綜上,讀者一看到從句是過去完成式,自然會想到是一般過去式後退一個時態來表達虛擬,也就確定了從句的實際時態是一般過去式。一看到主句是語氣助動詞加上現在完成式,也就知道主句的實際時態也是一般過去式。這也回答了前面讀者提出的問題——表格裡面說好主從句都是一般過去式的虛擬語氣,為什麼從句是過去完成式,說好的一般過去式去哪兒了。

以下我們用上面的邏輯推理來看其他情況。

2.主句是一般現在式的結果

If it had not
rained
so heavily yesterday, we could have a game now.(如果昨天沒下雨,現在我們就能比賽了。)

從句的時態應該是一般過去式,yesterday表示昨天。所以,動詞的一般過去式didn』t rain後退一個時態(即:過去完成式had not rained)來表達「非事實」的虛擬語氣。

主句的時態應該是一般現在式,語氣助動詞could在「猜測用法」中無法表達過去,只能表達語氣更加不確定,也更加委婉,所以直接在語氣助動詞could後面加上動詞原形have來表示現在,即:we could have a game now.

綜上,讀者一看到從句是過去完成式,自然會想到是一般過去式後退一個時態來表達虛擬,也就確定了從句的實際時態是一般過去式。一看到主句是語氣助動詞加上一般現在式,也就知道主句的實際時態是一般現在式。

3.主句是現在進行式的結果

If it had not
rained
so heavily yesterday, we would be having a game now.(如果昨天沒有下雨,我們現在正在比賽了。)

從句的時態應該是一般過去式,yesterday表示昨天。所以,動詞的一般過去式didn』t rain後退一個時態(即:過去完成式had not rained)來表達「非事實」的虛擬語氣。

主句的時態是現在進行式,「我們現在正在比賽」指的是說話的當時正在發生的事情,而上面we could have a game now.是一個描述普通情況的句子。語氣助動詞would在「猜測用法」中無法表達過去,只能表達語氣更加不確定,也更加委婉,所以直接在語氣助動詞would後面加上be having來表示現在進行,即:we would be having a game now.

綜上,讀者一看到從句是過去完成式,自然會想到是一般過去式後退一個時態來表達虛擬,也就確定了從句的實際時態是一般過去式。一看到主句是語氣助動詞加上現在進行式,也就知道主句的實際時態是現在進行式。

4.主句是一般將來式的結果

If it had not
rained
so heavily yesterday, we could have a game tomorrow.(如果昨天沒下雨,我們明天就能比賽了。)

假設雨下得太大,水都退不下去,草皮都泡爛了,昨天和今天操場還在修理中無法使用,於是明天的比賽取消了,這時候主句就是一般將來式的結果。

一般將來式we will have a game
tomorrow.中的will視為表達時態的「文法助動詞」,那麼will have就是一般將來式。不過,如果採用will/would have、may/ might have、can/could have等等任何一個「猜測用法」的語氣助動詞也都可以,這表示will rain當中的will也可以視為「猜測用法」的語氣助動詞。

如果把一般將來式will have中的will視為「猜測用法」的語氣助動詞,表示某件事情未來發生的可能性,此時也就不存在一般將來式這一時態了。原因一是把一般將來式will have中的will視為「猜測用法」的語氣助動詞,也就是不承認一般將來式,把一般將來式這個名稱從動詞時態中取消,只剩下一般現在式與一般過去式;原因二是把一般將來式will have中的will視為「猜測用法」的語氣助動詞,語氣助動詞無論是現在拼法還是過去拼法,都不表示時間,只表達語氣的變化。既然不存在一般將來式這一時態,但是句子中有動詞就必須有時態,權衡之下我們取最普通的一般現在式來表達時態(按照推理,取一般過去式來表達時態也行,但考慮到一般過去式的變化較一般現在式複雜,我們最終留下一般現在式來表達時態。)

所以,主句的時態應該是一般將來式,經過一番推理,最終選定一般現在式。語氣助動詞could在「猜測用法」中無法表達過去,只能表達語氣更加不確定,也更加委婉,所以直接在語氣助動詞could後面加上動詞原形have來表示現在,即:we could have a game tomorrow.

從句的時態應該是一般過去式,yesterday表示昨天。所以,動詞的一般過去式didn』t rain後退一個時態(即:過去完成式had not rained)來表達「非事實」的虛擬語氣。

綜上,讀者一看到從句是過去完成式,自然會想到是一般過去式後退一個時態來表達虛擬,也就確定了從句的實際時態是一般過去式。一看到主句是語氣助動詞加上一般現在式,通過句義的理解也就知道主句的實際時態是一般將來式。

(二)從句是一般現在式的條件假設

1.主句是一般過去式的結果

If I were you,
I would haven』t done such stupid things.(我是你的話,剛才我就不會幹出那種傻事。)

從句的時態應該是一般現在式,當然,我不可能是你,所以不能用敘述事實的語氣I am you來表達,從句動詞的一般現在式am後退一個時態(即:一般過去式was/were)來表達「非事實」的虛擬語氣。be動詞變成一般過去式來表示虛擬語氣時,正式的用法一律採用were而不用was,這是因為were是古英語虛擬語氣動詞變化的一種殘留,現代英語動詞be對應古英語beon和wesan兩個動詞,它們的虛擬式和過去式都是:單數w?re、複數w?ren,經過若干世紀的變化成了were這一形狀。

主句的時態應該是一般過去式,潛台詞就是以前我干過那種傻事,所以需要使用「非事實」的語氣。雖然從句動詞後退一個時態來表達虛擬,但是主句動詞的一般過去式did不需要後退一個時態(即:過去完成式had done)來表達虛擬語氣,因為可以通過語氣助動詞的猜測用法來表達不確定的含義,也就不再需要通過改變動詞的時態來實現虛擬了。

語氣助動詞would在猜測用法中無法表達過去時間,又由於助動詞後面要用原形動詞,此時動詞的過去式無處安置,所以我們只能妥協地藉助現在完成式來表達過去,直接在語氣助動詞would後面加上haven』t done來表達一般過去式,即:I would haven』t done such stupid things.來表達過去。

這句話選擇用非事實的虛擬語氣來說,是為了使語氣緩和一些,以委婉的口吻告訴對方他做錯了。

綜上,讀者一看到從句是一般過去式,自然會想到是一般現在式後退一個時態來表達虛擬,也就確定了從句的實際時態是一般現在式。一看到主句是語氣助動詞加上現在完成式,也就知道主句的實際時態是一般過去式。

2.主句是一般現在式的結果

If I were you,
I wouldn』t be so stupid.(我是你的話,我現在就不會幹這種傻事。)

從句的時態應該是一般現在式,為了達到虛擬的目的,從句動詞的一般現在式am後退一個時態(即:一般過去式were)來表達「非事實」的虛擬語氣。

主句的時態應該是一般現在式,潛台詞是我現在干這種傻事,所以借用語氣助動詞的「猜測用法」來表達虛擬,所以直接在語氣助動詞would後面加上動詞原形be來表示現在,即: I wouldn』t be so stupid.

綜上,讀者一看到從句是一般過去式,自然會想到是一般現在式後退一個時態來表達虛擬,也就確定了從句的實際時態是一般現在式。一看到主句是語氣助動詞加上一般現在式,也就知道主句的實際時態是一般現在式。

3.主句是現在進行式的結果

If I were you,
I wouldn』t be doing such stupid things.(我是你的話,現在我就不會在干這種傻事了。)

從句的時態應該是一般現在式,為了達到虛擬的目的,從句動詞的一般現在式am後退一個時態(即:一般過去式were)來表達「非事實」的虛擬語氣。

主句的時態應該是現在進行式,潛台詞是我現在就干著這種傻事,所以借用語氣助動詞的「猜測用法」來表達虛擬,所以直接在語氣助動詞would後面加上動詞原形be doing來表示現在進行,即: I wouldn』t be doing such stupid things.

綜上,讀者一看到從句是一般過去式,自然會想到是一般現在式後退一個時態來表達虛擬,也就確定了從句的實際時態是一般現在式。一看到主句是語氣助動詞加上現在進行式,也就知道主句的實際時態是現在進行式。

4.主句是一般將來式的結果

If I were you,
I wouldn』t do such stupid things.(我是你的話,我就不會去干傻事。)

你朋友要自殺了,你就可以用這句話勸解他。

從句的時態應該是一般現在式,為了達到虛擬的目的,從句動詞的一般現在式am後退一個時態(即:一般過去式were)來表達「非事實」的虛擬語氣。

如果把一般將來式will do中的will視為「猜測用法」的語氣助動詞,也就不存在一般將來式這一時態了。既然不存在一般將來式這一時態,但是句子中有動詞就必須有時態,權衡之下我們取最普通的一般現在式來表達時態。所以,主句的時態應該是一般現在式,潛台詞是我將要干傻事,藉助語氣助動詞的「猜測用法」來表達虛擬。語氣助動詞would在「猜測用法」中無法表達過去,只能表達語氣更加不確定,也更加委婉,所以直接在語氣助動詞would後面加上動詞原形do來表示現在,即: I wouldn』t do such stupid things.

綜上,讀者一看到從句是一般過去式,自然會想到是一般現在式後退一個時態來表達虛擬,也就確定了從句的實際時態是一般現在式。一看到主句是語氣助動詞加上一般現在式,通過句義的理解也可以知道主句的實際時態是一般將來式。

(三)從句是一般將來式的條件假設

1.主句是一般過去式的結果

If he came/should
come
/were to come, he would have called me.(如果他要來,他剛才就給我打電話了。)

如果把一般將來式will
come的will視為「猜測用法」的語氣助動詞,也就不存在一般將來式這一時態了。既然不存在一般將來式這一時態,但是句子中有動詞就必須有時態,權衡之下我們取最普通的一般現在式來表達時態。所以,從句的時態剩下一般現在式,當然,他不可能會來,所以不能用敘述事實的語氣if he comes tomorrow.來表達,從句動詞的一般現在式come/shall/be後退一個時態(即:一般過去式came/shall/were)來表達「非事實」的虛擬語氣。

表示一般將來式的從句中有可能用過去式、should或者were to,這三個詞所表達的意思略有不同,如果用were to表示這件事基本沒戲,should的話表示有一定可能,過去式的話可能性更大一些,但是給人感覺可能性基本都很小很小。

主句的時態應該是一般過去式,潛台詞是他剛才沒給我打電話,所以借用語氣助動詞的「猜測用法」來表達虛擬。語氣助動詞would在猜測用法中無法表達過去時間,又由於助動詞後面要用原形動詞,此時動詞的過去式無處安置,所以我們只能妥協地藉助現在完成式來表達過去,直接在語氣助動詞would後面加上have called來表達一般過去式,即:he would have called me.

綜上,讀者一看到從句是一般過去式,自然會想到是一般現在式後退一個時態來表達虛擬,也就確定了從句的時態應該是一般現在式,通過句義的理解也就知道從句的實際時態是一般將來式。一看到主句是語氣助動詞加上現在完成式,也就知道主句的實際時態是一般過去式。

2.主句是一般現在式的結果

If he came/should
come
/were to come, he would be on time. (他要來的話,他現在就到了。)

如果把一般將來式will come中的will視為「猜測用法」的語氣助動詞,也就不存在一般將來式這一時態了,權衡之下我們取最普通的一般現在式來表達時態。當然,他沒有來,所以從句動詞的一般現在式come/shall/be後退一個時態(即:一般過去式came/shall/were)來表達「非事實」的虛擬語氣。

主句的時態也應該是一般現在式,潛台詞是他還沒到,所以借用語氣助動詞的「猜測用法」來表達虛擬,所以直接在語氣助動詞would後面加上動詞原形be來表示一般現在式。

綜上,讀者一看到從句是一般過去式,自然會想到是一般現在式後退一個時態來表達虛擬,也就確定了從句的時態應該是一般現在式,通過句義的理解也就知道從句的實際時態是一般將來式。一看到主句是語氣助動詞加上一般現在式,也就知道主句的實際時態是一般現在式。

3.主句是現在進行式的結果

If he came/should
come
/were to come, he would be running on the street.(如果他要來,他現在應該在街上狂奔。)

如果把一般將來式will come中的will視為「猜測用法」的語氣助動詞,也就不存在一般將來式這一時態了,權衡之下我們取最普通的一般現在式來表達時態。當然,他沒有來,所以從句動詞的一般現在式come/shall/be後退一個時態(即:一般過去式came/shall/were)來表達「非事實」的虛擬語氣。

主句的時態應該是現在進行式,潛台詞是他沒在街上狂奔,所以借用語氣助動詞的「猜測用法」來表達虛擬,所以直接在語氣助動詞would後面加上動詞原形be running來表示現在進行式。

綜上,讀者一看到從句是一般過去式,自然會想到是一般現在式後退一個時態來表達虛擬,也就確定了從句的時態應該是一般現在式,通過句義的理解也就知道從句的實際時態是一般將來式。一看到主句是語氣助動詞加上現在進行式,也就知道主句的實際時態是現在進行式。

4.主句是一般將來式的結果

If he came/should
come
/were to come, he would call me.(如果他要來,他將會打電話給我。)

如果把一般將來式will come中的will視為「猜測用法」的語氣助動詞,也就不存在一般將來式這一時態了,權衡之下我們取最普通的一般現在式來表達時態。當然,他沒有來,所以從句動詞的一般現在式come/shall/be後退一個時態(即:一般過去式came/shall/were)來表達「非事實」的虛擬語氣。

如果也把主句中一般將來式will
call中的will視為「猜測用法」的語氣助動詞,也就不存在一般將來式這一時態了,權衡之下我們取最普通的一般現在式來表達時態。當然,他沒有打電話給我,所以藉助語氣助動詞的猜測用法來表達虛擬,所以直接在語氣助動詞would後面加上動詞原形call來表示一般現在式。

綜上,讀者一看到從句是一般過去式,自然會想到是一般現在式後退一個時態來表達虛擬,也就確定了從句的時態應該是一般現在式,通過句義的理解也就知道從句的實際時態是一般將來式。一看到主句是語氣助動詞加上一般現在式,通過句義的理解也就知道主句的實際時態是一般將來式。

(四)從句是現在進行式的條件假設

從句很少使用到現在進行式,這裡給出幾個句子,讀者只需運用前面分析虛擬語氣的邏輯進行判斷即可明白,推理過程我再寫就成兩萬字的學術論文呵呵呵(這句話也是虛擬語氣呀你到底讀出來了沒,老子不寫推理了!)。

1.主句是一般過去式的結果

這個句子很難寫呀,生活中基本上不會接觸到這種句子。你想呀,要是你現在正在做什麼,過去就不會做什麼。說這句話的時候,好像你現在正在進行22世紀的時光旅行,等你旅行結束再回到21世紀,站在22世紀那個時間講,等你回到21世紀,就不會做那種事了。時間穿梭既視感太強,21世紀的我太弱寫不出來哈哈哈,這種句式基本只存在理論組合里。

2.主句是一般現在式的結果

If we weren』t
living
in the twenty-first century,people would think you were a sorcerer.(要不是生活在21世紀的話,人們會認為你是個男巫。)

3.主句是現在進行式的結果

If human beings were
not killing
each other,we could be living a happy life.(要是人類不自相殘殺的話,我們就會過上幸福的生活。)

4.主句是一般將來式的結果

If you were learning,you would
be admitted
to PeKing University.(如果你一直學習,你就會考上北京大學。)

四、非if引導的虛擬語氣

非if引導的虛擬語氣千奇百怪,屬於不規則情況,很難歸納,但萬變不離其宗,只要運用上述分析虛擬語氣的邏輯去分析句子,一定可以看出它是否屬於虛擬語氣。我盡量把我知道的都拿出來分析一遍吧。

I should do
that.(我應該去做那件事。)

你說你要去一件事,說明那件事你還沒做,是一種非事實語氣,需要使用虛擬語氣。其次,句子的時態應該是一般將來式,一旦使用了語氣助動詞就不存在一般將來式,權衡之下我們取一般現在式,語氣助動詞should表示極端的不確定(也就是虛擬語氣),不再需要借用助動詞時態的變化來表達虛擬了,直接在語氣助動詞should後面加上動詞的一般現在式do即可。另外,should還可以用在很多從句裡面,比如:

I suggest that he (should)
study
.(我建議他應該學習。)

Is it important
that we (should) be there?(我們在那裡很重要嗎?)

Mike recommended
that you (should) join the committee.(邁克推薦你參加委員會)

主句中的I suggest和Mike recommended,都只是陳述事實的語氣,不需要使用虛擬語氣。但是從句的動詞是一種非事實語氣,需要使用虛擬語氣,按照上面分析虛擬語氣的邏輯去分析即可明白。

Suppose you had
three wishes, what would you wish for?(假如你有三個願望,你將會許什麼願?)

這個句子中,suppose是連詞,功能和含義和if相同,把這個句子改為if you had three wishes,
what would you wish for? 也就可以理解了。從句說的是你現在有三個願望,所以動詞的一般現在式have後退一個時態(即:一般過去式had),主句說的是你將會許什麼願,用了語氣助動詞所以一般將來式不存在,權衡之下取一般現在式,語氣助動詞would表示極端的不確定(也就是虛擬語氣),不再需要藉助動詞時態的變化來表達虛擬了,後面直接加上動詞的一般現在式wish即可。

If only she loved
me, too!(要是她也愛我就好了!)

這個句子其實並不完整,有經過省略。在連詞if後面加上only,往往就只看得到條件狀語從句而缺乏主句,表示「如果……就好了!」。一般在表示「如果……」的狀語從句後面加個主句來表示「就……」,這樣才算完整。但是採用if only來引導條件狀語從句的話,後面的主句通常會省略掉。把這個句子改為If she
loved me, I would love her too.也就可以理解了。

I wish I had
the money!(要是我有那筆錢該多好!)

你看到一件很想買的東西,偏偏沒有錢,就可以用這個句子來表達惋惜的語氣。wish這個動詞,通常用來表示與事實相反的願望,所以它後面的賓語從句應該採用非事實的虛擬語氣,把這個句子改為if I had the money, I would buy you a car.也就可以理解了。新改的句子中,從句說的是現在我有錢就好了,所以動詞的一般現在式have後退一個時態即一般過去式had。

I"d rather I had
seen
you yesterday.(我倒寧願昨天能見到你。)

說明昨天並沒有看見,是一種非事實的語氣,需要使用虛擬語氣。昨天是一般過去式,從句動詞的一般過去式saw後退一個時態即過去完成式had seen。

It』s time you started
living
on your own.(你開始獨立生活的時間已經到了。)

如果子女已經大學畢業卻還在家和父母同住,這種情況在美國相當少見,這時候家長可能會和子女說這句話。主句It』s time的時間是現在,這是敘述事實的語氣(時間真的已經到了),不需要虛擬,所以動詞採用一般現在式is。主語從句you started living on your own.表達的情況(你開始獨立生活)卻是非事實(因為並沒有開始),所以動詞的一般現在式start後退一個時態(即:一般過去式started)來表達虛擬語氣。

Without air, human
beings would not be abled to survive.(如果沒有空氣,人類將無法生存。)

把這個句子變成If
there were no air, human beings would not be abled to survive.也就可以理解了。從句說的是如果現在沒有空氣,動詞的一般現在式is後退一個時態即一般過去式were,主句說的是人類將來沒法生存,一般將來式不存在,權衡之下取一般現在式,語氣助動詞would表示極端的不確定(也就是虛擬語氣),不再需要藉助動詞時態的變化來表達虛擬了,後面直接加上動詞的一般現在式be即可。

In that case we could
have achieved
our goal.(要是那樣的話,我們肯定就達成目標了。)

Under that
condition we could have lived more comfortably.(如果在那種情況下,我們就可以過得很舒適。)

以上兩個句子,in
that case、under that condition指的都是在假設的某種情況下,把它們改成if引導的虛擬語氣即可理解。

He was on business
in Beijing at that time, otherwise/or he might have helped us.(他那時在北京出差,不然他可能就幫我們了。)

上面句子的主句陳述一個事實:他那時確實在北京出差,所以主句不適用虛擬語氣(非事實的語氣),但是從句陳述的是非事實:他幫我們,事實上他並沒有幫(因為他在外地出差,遠水救不了近火),所以從句必須使用虛擬語氣,把從句變成if he hadn』t been on business in Beijing at that time, he might
have helped
us.也就可以理解了。新改成的句子,主句說的是他(過去)幫我們,由於助動詞後面只能加原形動詞,這裡使用動詞的一般過去式來表達過去是不可能的,只能藉助現在完成式來表達過去,所以助動詞would後面直接加上現在完成式have done即可。

The two strangers
talked as if they had been friends for years.(那兩個陌生人聊到一起了,好像是多年的朋友。)

上面句子的主句陳述一個事實:兩個陌生人聊天,所以主句不適用虛擬語氣,但是從句陳述的是非事實:他們好像是多年的朋友,事實上他們並不是多年的朋友,所以從句必須使用虛擬語氣,說的是兩個陌生人以前是朋友,所以從句動詞的一般過去式were後退一個時態(即:過去完成式had been)來表達虛擬意味。


虛擬語氣是高考英語填空題的常考點,印象中應該是高二接觸到的知識,此類知識萬變不離其宗,注意虛擬語氣的判別及相應的時態表達。下面就講講虛擬語氣的結構。咳咳。。。

(1)與現在的事實相反

虛擬條件句:If+主語+動詞的過去式(be動詞用were)主句:主語+should/would/could/might +動詞原形(2)與過去事實相反

虛擬條件句:If+主語+had+過去分詞 主句:主語+should/would/could/might +過去分詞

(3)與將來事實相反

虛擬條件句:1??if+主語+動詞過去式 2??if+主語+were to +動詞原形 3??if+主語+should+動詞原形 主句:主語+should/would/could/might+動詞原形

錯綜條件句:當條件狀語從句表示的行為和主句表示的行為所發生的時間不一致時,被稱為錯綜時間條件句,動詞的形式要根據它所表示的時間做出相應的調整。例:If you had studied hard before, you would be a college student now.

含蓄條件句:有時虛擬語氣不出現以if引導的條件句,而用其他辭彙代替,如:otherwise, or 例句: I was ill that day. Otherwise, I would have taken part in the sports meeting.

虛擬語氣在名詞性從句中

wish後的賓語從句一般用虛擬語氣,表示不可能實現的願望。例:I wish I were a bird and could fly freely in the sky.

虛擬語氣用於表示建議,願望,命令等詞後的賓語從句中,常見的有insist, order, command, suggest, advise, require, demand and so on. 這時虛擬語氣結構為should+動詞原形,should可省略。

would rather後的賓語從句中,也用虛擬語氣,謂語動詞用過去式 例:I would rather he didn"t hear of the news.

當suggest表示「暗示,表明」,insist表示「堅持認為,堅持說」之意時,後面的賓語從句不在用虛擬語氣,轉用陳述語氣。例句: The smile on his face suggested that he was satisfied with our work.

It"s (high) time (that)...句型中,謂語動詞用過去式或者should+動詞原形,should不能省略。意為「現在該幹什麼什麼了」 it"s high time that we should start (started) out.

as if, as though 用在虛擬語氣中,如果as if 引導的從句謂語動詞與主句謂語動詞所表達的動作同時發生 ,從句謂語動詞用過去式。如果as if 引導的從句謂語動詞表達的動作先於主句謂語動詞所表達的動作,從句謂語動詞用過去完成時。同理,as if 引導的從句謂語動詞什麼時候用過去將來時呢?

試比較這兩個句子:1??she speaks English so fluently as if she had studied English in America. 2??she learns English so hard as if she would go to the USA.

寫了這麼多,發現高中的知識原來還沒有丟,本人英語專業,希望能和大家多多交流英語專業知識,以上答案望採納。


if the rumor be true, everything is possible.在這個句子中,
if這裡為什麼是be,而不是were?
主句為什麼是is,而不是were或者would be?


我也來拋磚,希望能夠引玉,也可能會被拍磚哈。hahahha

我對於學習外語的最基本的觀點是一切語言現象都是為了語言表達的目的而存在,換句話說都存在一定的邏輯性,當然虛擬語氣也不例外。

對於虛擬語氣,首先得明白它只是一種語氣,它只是一種語氣。真的只是一種語氣,而不是某種特定的句式。這種語氣實現的方式有很多種,可能是通過條件狀語從句,也可能是通過連詞,或者介詞,只要能在語意上構成這種假設語氣,都可以納入到虛擬語氣的範疇之中,並不一定局限於那幾種單薄的if從句。

先按照幾種規則的時態的虛擬語氣說下,

與現在事實相反,主要是在表達對現實的無力,「如果我有一千萬美金就好了。」、「如果你是我妹妹就好了」、「如果你嫁給我就好了」、諸如此類的東西。總之是現如今無法做到或者不存在的事都可以用這種虛擬語氣。

與過去事實相反,主要是表達慶幸、或者後悔,也就是希望過去某件事沒發生、或者發生了。「如果我 告訴你那裡有個坑就好了」「如果不是遇見你,我將會是在哪裡」都是這一類的。

與將來事實相反,主要是表達特別不想讓它發生的事情或者特別想讓它發生的事情,「如果你方違背本合同條款,則必須在接到我方書面通知之日起十日內賠償我方十倍於合同金額的款項」,「如果有一天我能在北京二環內買個十套房子,那麼我們去天安門就方便多了」

我這裡只用漢語舉例子,對應的英文表達大家去腦補。

當然我也說了,虛擬語氣也只是一種語氣,而不是一種特定的表達方式,只要能構成這種語氣的就是虛擬語氣,即便它不符合語法書上所列舉的任何特定形式。所以有的時候,從句可能說的是與過去相反,而主句卻在說現在的情況,所以需要靈活掌握。按道理這裡應該舉些例子,但時間有限,以後有時間再上來舉例。

虛擬語氣當然不一定只是從句主句這樣的複合句來構成,有的時候一個簡簡單單的介詞或者連詞也能構成個虛擬語氣,所以一定要明白,虛擬語氣它只是一種語氣,,,,,,,,,而已,不要把它和特定的表達格式死死釘在一起。


其實虛擬語氣這東西很好理解,講一個例子一通百通。

用中文的理解方式的話,如果小明的父親跟他約定考試成績好有獎勵,他會用條件句:

如果你考試考得好,我就給你買台好電腦。

可是,可是,可是,如果此時用虛擬語氣,說出來的就是……

萬一你能考好,我給你買台電腦。 或者是

如果你這樣的也能考得好,我就能給你買一台外星人。

。。。。赤裸裸的羞辱。。。


每當對這個問題犯迷糊的時候,就唱一遍《If I were a boy》。If I were a boy…I"d roll outta bed in the morning…

However, 一直不明白另一首歌名的語法規則:《If I die young》。


有環境了自然就懂了。。


A. 假設性虛擬語氣

看起來不可能或不真實的條件,用if, as if, as though引導

to be一般用were

e.g. if I were a rich man...

B. If…,( then)….常見的五種句型 (then 經常會被省略掉)

If後不總是虛擬語氣,if和then的結果可以產生以下幾種時態和語氣:

(1)表示確定: If +現在時, 主句+現在時

(2)表示某種程度的不確定: if +現在時, 主句+can or may

(3)確定-將來時態(現在發生的事情對將來造成的影響):

if +現在時,主句+將來時或現在完成時

(4)不確定-將來時態(對不太可能發生的事的推測)

if +虛擬語氣, 主句+情態動詞

(5)從未發生-過去式

if +完成時, 主句+情態動詞完成時

C.命令性的虛擬語氣

(1)一般形式: 主語+命令性動詞+that+從句主語+虛擬動詞原型

(2)只能用that從句的命令虛擬語氣,不能用不定式的詞(包括其名次形式):

demand, request, dictate, insist, mandate,recommend, stipulate, suggest, propose(propose,當句子中的兩個動詞發起者均是一個主語時,可以用不定式)

只能用不定式的詞:advise, allow, forbid,
persuade, want(有時want並不表示虛擬語氣,而使用不定式表目的)

既可以接that從句的命令虛擬語氣,又可以接不定式的詞:

v:ask,
beg,require, intend, order,urge, prefer

adj:essential, advisable, vital, crucial,desirable,urgent, fitting, imperative, necessary, important, mandatory, preferable

D.虛擬條件句的四種形式:

But for... + should/would/could/might + V. / have V.( 若不是... 應該….)

= If it were not / (had not been) for ....

= Were it not for ... / (Had it not been for ...)

= Without ...(介詞只有without可表虛擬語氣)

虛擬語氣的時態:

時間:將來

從句謂語形式:

動詞過去式(be用were)

should + 動詞原形

were to + 動詞原形

主句謂語形式:would / should / might / could + 動詞原形

時間:現在

從句謂語形式:動詞過去式(be 用 were)

主句謂語形式:would / should / might / could + 動詞原形

時間:過去

從句謂語形式:had +動詞過去分詞

主句謂語形式:would / should / might / could have + 動詞過去分詞


感覺樓主對虛擬語氣的見解非常深刻呀,讀了你的文章讓我對虛擬語氣的認識受益匪淺!!!


推薦閱讀:

中國歷史上各朝代的「普通話」大體能對應現在的那些方言?
古代皇帝是不是能聽懂全國各地的方言?
中國大眾網民對語言和語言學有哪些誤解?
用字母作為文字的國家怎麼區分中國歷史上的韓國和漢國/漢朝?
各種語言的「謝謝」的原意是什麼?

TAG:語言 | 英語 | 英語學習 |