一、概說
英語有三種語氣,即陳述語氣、祈使語氣和虛擬語氣。陳述語氣用于陳述事實、提出看法或問題等,祈使語氣用于表示請求、命令或警告等,虛擬語氣則表示假想或主觀愿望:
He is honest. 他很誠實。(陳述語氣)
Don’t be late next time. 下次別遲到。(祈使語氣)
If I were you I wouldn’t go. 我要是你,我就會去。(虛擬語氣)
I wish I had a lot of money. 要是我有很多錢就好了。(虛擬語氣)
二、帶虛擬條件的虛擬語氣
1. 真實條件句和非真實條件句
條件句有真實條件句和非真實(虛擬)條件句兩種。真實條件句所表示的假設是有可能發生的,而非真實條件句則通常表示一種假想,與事實相反或不大可能會發生:
If I have time, I will go with them. 假若我有時間,我就同他們去。(陳述語氣)
If I were you, I would go with them. 假若我是你,我就同他們去。(虛擬語氣)
2. 虛擬條件句的三種基本類型
(1) 若與現在事實相反,條件從句的謂語用過去式(be通常用were),主句謂語用“should (would, could, might)+動詞原形”:
If you took a taxi,you’d get there quicker. 如果你坐出租車去,你可以快一點到那里。(但你不坐)
If I knew her number I could ring her up. 要是我知道她的電話號碼,我就可以給她打電話了。(可惜我不知道)
(2) 若與過去事實相反,條件從句的謂語用過去完成時(had+過去分詞),主句謂語用“should (would, could, might)+have+過去分詞”:
If I’d left sooner,I’d have been on time. 要是我早點動身,我就準時到了。(但我動身太遲了)
If we had found him earlier we could have saved his life. 要是我們當時早點找到他的話,我們就可以救活他。(可惜我們找到他太晚了)
(3) 若與將來事實相反,條件從句的謂語用過去式(be通常用were),主句謂語用“should (would, could, might)+動詞原形”:
If he went,would you go too? 如果他去,你也去嗎?(大概他不會去)
If I asked him,I’m sure he’d help us. 如果我向他提出要求,肯定他會幫助我們。(不過我不打算這樣做)
注:① 主句謂語中的should主要用于第一人稱后。would, might, could的大致區別是:would表示結果,might表示可能性,could表示能力、允許或可能性。比較:
If you tried again you would succeed. 要是你再試一試,你就會成功的。(would表結果)
If you tried again you might succeed. 要是你再試一試,你可能會成功的。(might表可能)
If you tried again you could succeed. 要是你再試一試,你就能成功了。(could表能力)
② 條件從句的謂語動詞為be時,不管其主語為單數還是復數通常都用were,但在口語或非正式文體中的單數第一人稱和第三人稱后,也可用was,不過在 If I were you這樣的表達中,通常還是以用were為宜。
③ 有時條件從句用would表示愿意:
If he would live on with me, I would be his better half. 要是他還愿意跟我過,我仍會做他的妻子。
④ 對于與將來事實相反的情形,請注意以下幾點:一是這里說的與將來事實相反,實為對將來情況的推測;二是此用法中的條件從句謂語除用過去式外,有時也用“should+動詞原形”(表示可能性極小,常譯為“萬一”)或“were to+動詞原形”(表示與將來事實相反的假設);三是當條件從句使用“should+動詞原形”這樣的謂語時,主句謂語除可用“should (would, could, might)+動詞原形”這樣的虛擬語氣外,也可用陳述語氣或祈使語氣:
If it should rain tomorrow, don’t expect me. 萬一明天下雨,就不要等我了。
I should see him, I’ll tell him. 萬一我見到他,我就告訴他。
3. 錯綜時間虛擬條件句
所謂錯綜時間虛擬條件句即條件從句與主句所指時間不一致,如從句指過去,而主句即指的是現在或將來,此時應根據具體的語境情況,結合上面提到的三種基本類型對時態作相應的調整:
If it had rained last night, the ground would be wet now. 要是昨晚下過雨的話,現在地面就會是濕的。
You would be much better now if you had taken my advice. 假若你當時聽我的話,你現在就會好多了。
注:條件從句用 if I were…時,既可指現在也可指過去。如:
If I were you, I would go. 假若我是你,我就去。
If I were not busy, I would have come. 假若我不忙,我早就來了。
也可用 if I had been you也表示過去:
If I had been you,I’d have taken the job. 我要是你,我就接受那份工作了。
4. 含蓄虛擬條件句
所謂含蓄虛擬條件句即指將條件從句隱藏在上下文一定的短語中的一類條件句:
(1) 將條件隱含在不定式短語中:
I should be happy to go with you. 如果能與你一起去,我將很高興。(=I should be happy if I could go with you.)
To have studied harder, you would have passed the examination. 你學習更用功些,你早就考及格了。(=if you have studied harder, you…)
(2) 將條件隱含在分詞短語中:
Born in better times, he would have been a scholar. 如果出生在好時代,他早就成為學者了。(=If he had been born in better times, he …)
Failing this time, what would you do? 假若這次失敗,那你怎么辦?(=If you failed dthis time, what…)
Walking alone in the dark, Mary would be terrified. 要一個人單獨在黑暗中走,瑪麗會感十分害怕。(If Mary walked alone in the dark, she…)
(3) 將條件隱含在介詞短語中:
Without air, no one could live. 沒有空氣,人就不能活。(=If there were no air, no one could live.)
But for his help, he would have failed. 要不是有他的幫助,他就會失敗了。(=It it hadn’t been for his help, he would have failed.)
(4) 將條件隱含在名詞短語中:
A true friend would not have betrayed me. 若是真正的朋友,就不會背棄我。(=If he had been a true friend, he would…)
A few hours earlier, and you would have seen the famous writer. 要是你早來幾個小時,你就見到這位著名的作家了。(If you had come a few hours earlier, you…)
(5) 將條件隱含在某些連詞(如or, or else, otherwise等)中:
I didn’t know that he was a cheat, or else I wouldn’t have believed him. 我不知道他是個騙子,不然我也不會相信他了。(or else=if I had known he was a cheat))
I’m really very busy, otherwise I would certainly go there with you. 我真的是太忙了,不然我就會同你一道去了。(otherwise=if I were not so busy)
(6) 將條件隱含在定語從句中:
Anyone who had seen that painting might have taken it for a photo. 凡是看過那畫的人,都可能把它看成是照片。(=If anyone had seen that painting…)
(7) 將條件隱含在一定的上下文中:
Don’t bother to read all these papers. It would take too long. 不要費事看所有這些文件了,那會花太多時間。(=…If you read all these papers, It would take too long)
5. if it weren’t [wasn’t] for與if it hadn’t been for。這是兩個很常用的虛擬語氣句型,其意為“若不是(有)”、“要不是有”:
If it weren’t for water, no plant could grow. 要是沒有水植物就無法生長。
If it hadn’t been for the doctor, he would have died. 要不是醫生救了他,他就會死了。
注:(1) 此句型有可用but for, without等替換:
If it hadn’t been for [But for, Without] your assistance we wouldn’t have succeeded. 要不是有你幫忙,我們是不會成功的。
(2) 原則上說,if it weren’t [wasn’t] for 用于談論現在的情況,而if it hadn’t been for 用于談論過去的情況。但實際上if it weren’t [wasn’t] for有時也可用于談論過去的情況:
If it were not for their help, we couldn’t have got over the difficulties. 要不是他們幫助,這些困難我們不克服不了的。
6. 幾類省略的虛擬條件句型
(1) 省略連詞if。有時可將條件從句的連詞if省略,但此時應用倒裝句型,即將從句中的were, should, had 等提到句首:
Were I Tom, I would refuse. 如果我是湯姆,我會拒絕。
I will go, should it be necessary. 假若有必要,我會去的。
Had it not been for the bad weather we would have arrived in time. 若不是天氣壞,我們就準時到達了。
注:① 若條件從句為否定句,否定詞not應置于主語之后,而不能與were, should, had 等縮略成Weren’t, Shouldn’t, Hadn’t而置于句首。
② 有時省略if后提前的had不是助動詞:
Had I time, I would come. 假若我有時間,我會來的。(=If I had time…)
(2) 省略條件句的主語和其后的動詞be。若主從句主語一致,且謂語部分包含有動詞be,通常可將主語和動詞be省略:
If repaired earlier, the tractor would not have broken down. 要是早點兒修一下,拖拉機就不會拋錨了。(=If it had been repaired earlier…)
(3) 省略“it+be”:
If necessary, I would send more farm-hands to help you. 如果需要的話我會派更多的民工去你。(=If it is necessary...)
(4) 省略整個條件從句。這樣的省略通常需要借助一定的上下文,即省略條件從句后,所剩下的主句的意思在一定的上下文中意思是清楚的:
I might see her personally. It would be better. 我可以親自去看她,這樣好一些。(=…If I saw her personally, it would be better.)