過去式情狀助動詞+完成式 – 表達過去結果非事實的假設語法
只要聽到句子中有Should / Could / Would / Might這幾個過去式情狀助動詞,後面再接上have Vpp(完成式),就表示句子中所說的動作在過去並未發生或並未被執行,而如果是Shouldn’t / Wouldn’t / Couldn’t/ Might not / Needn’t這幾個否定的過去式情狀助動詞,就表示句子中所說沒有做的動作其實在過去已經發生或已被執行了。
說話者用這種對過去事實的相反描述來表達後悔或失望、批評或指責、反思或解釋自己做過的某行為的原因,某事發生的可能性或評斷某人的能力能否做到某事。這種利用與事實相反的陳述來表達某種特別的情緒或想法的句型,就是假設語法的一種用法,進一步了解,請閱讀『透過三張圖表完全理解假設語氣 If, Wish和Should』一文。
話說回來,到底我們要如何得知說話者要表達的是什麼情緒呢?這就要看說話者是使用哪個情狀助動詞。下面就不同情狀助動詞的肯定與否定完成式所帶有的意涵,分別討論。
Should have + 過去分詞 / Shouldn’t have + 過去分詞
當你想要表示某事件應該發生而未發生,或不應該發生卻發生的情況,因此得到一個不好的結果,就用「should have + 過去分詞」和 「shouldn’t have + 過去分詞」來表示。
Should have + 過去分詞:這個句型有三種用法
- 表示某個人在過去應該做某事卻沒做。它通常用來表示說話者對發生的事帶有遺憾、失望、批評或指責,或自我反思的情緒。
- 它也可以來表示表示根據計劃或期望,如果一切正常的話,某件事在現在或之前就應該已經發生。但是,因為說話者沒有實際看到結果,也不確定一切是否都順利,所以使用should have而不是現在完成式或過去簡單式。 這時候,句子常會跟by now這個時間副詞連用。
- 我們也可以用它來表示與原本的預期或計劃相反的情況,某事應該發生,但是卻沒有發生。這時,後面還要接上but帶領的句子,以便讓語意清晰。
- I should have studied for the test.
我應該要讀書,為考試做準備的(但是,我沒有讀書,讀書這個動作是過去的動作,可能因為成績不佳,說話者在省思,所以should have Vpp表示自己應該做而未做)。 - We should have taken the earlier train. We wouldn’t have been late.
我們應該搭乘早一點的火車,我們就不會遲到了。
*事實上,說話者沒有搭早一點的車子,所以遲到了,他感到很後悔,或有指責對方的味道(如果選擇搭晚一點的車子的人是對方)。發現了嗎?說話者的陳述都是跟過去事實相反,所以用should have Vpp, wouldn’t have Vpp) - She should have finished her homework last night. Now she’s rushing to get it done.
她本該昨晚就完成她的作業(卻沒有),現在她必須趕快做。
*對於她沒有在昨晚完成作業,導致現在要匆忙寫作業這件事,說話者帶有不認可的味道 - You should have called me when you arrived. I was worried.
你到達時應該打電話給我,我很擔心。
*you事實上沒有打電話,說話者語意帶規勸或埋怨的味道 - They should have booked the tickets in advance. Now the show is sold out.
他們應該提前訂票,現在演出已經售罄了。
*因為沒有提早訂票,所以現在買不到票,說話者帶有指責或埋怨的味道,注意後面的句子是現在簡單式,代表現在的事實。 - You should have told me about the changes. I could have prepared better.
你應該告訴我事情有變化,我就能做得更好的準備。
*對於已發生的事,說話者帶有指責或不認可的味道,注意前後兩句都用過去式情狀助動詞+完成是,表示與事實相反 – you沒有告訴說話者,說話者也沒有做好準備。 - He should have asked for directions instead of getting lost.
他應該問路,而不是迷路。
*對於he沒有問路而導致迷路這件事,說話者帶有指責或不認可的味道。 - The mail should have arrived by now.
郵件現在應該已經到了。
*說話者預期郵件應該到了,但是因為還沒看到郵件,沒辦法用確定事件已成事實的現在簡單式或完成式,所以用should have Vpp。 - They should have reached the summit by now.
他們現在應該已經到達山頂了。 - The guests should have left by now.
客人現在應該已經走了。
9-10用法跟第8句一樣 - The train should have arrived by now, but it hasn’t.
火車現在應該已經到了,但它還沒到。 - They should have called by now, but they haven’t.
他們現在應該已經打電話來了,但他們還沒有。 - He should have finished his work by now, but he hasn’t.
他現在應該已經完成他的工作了,但他還沒有。
11-13句用法一樣,說話者認為應該要發生的是,結果卻出乎預期之外,所以後面加上but來帶出這個出乎意料的結果。
請注意所有例句的前後時態的不同的意涵
Shouldn’t have + 過去分詞
這個句型通常用來表示過去不應該做某事,但卻做了,因此得到了一個不好的結果。說話者使用這個句型時,通常帶有遺憾、失望、批評、埋怨、或責備的情緒。
- They shouldn’t have left the dog alone in the house. He caused a lot of damage.
他們不該把狗單獨留在家裡,牠破壞了很多東西。
*注意到在前面的句子,說話者使用shouldn’t have left 代表這件事不該做卻做了(與過去事實相反),而後面用過去簡單式代表事件是過去的事實,也就是已發生。 - I shouldn’t have eaten that third piece of cake. Now I feel sick.
我不該吃那第三塊蛋糕,現在我感覺不舒服。
*注意到在前面,說話者使用shouldn’t have eaten代表這件事不該做卻做了(與過去事實相反),而後面用現在簡單式代表事件是現在的事實。 - He shouldn’t have ignored the traffic light. His license could be suspended.
他不該無視紅綠燈,他的駕照可能會被吊銷。
*看到could be suspended使用could,可以知道現在還沒有被吊銷,說話者要表達主詞闖了紅燈,被捉到的可能性很高,就會被吊銷執照。 - You shouldn’t have spent all your money on that game. You need to save for college.
你不該把所有的錢都花在那個遊戲上,你需要為上大學儲蓄(事實上,錢已經全花了,說話者在對you做過的事情,給予規勸,意涵希望you以後不要再這麼做。) - She shouldn’t have promised to help if she wasn’t available. Now I have to find someone else.
如果她沒有時間,她就不應該答應幫助我,現在我必須找其他人。
*she過去承諾幫忙,現在卻沒空,導致說話者現在必須找其他幫手,說話者語意帶著埋怨或指責。 - They shouldn’t have trusted him blindly. Now they are in trouble.
他們不應該盲目地信任他,現在他們陷入麻煩中。
*說話者的具體的情緒可能會因語境、語調,以及說話者與那些陷入麻煩的人之間的關係而變化,可能是失望、指責或關切。 - You shouldn’t have yelled at him.
你本不該對他大吼的
*對於you對he大吼這件事,說話者語意帶著埋怨或指責。
請注意所有例句的前後時態的不同的意涵
Would have + 過去分詞 / Wouldn’t have + 過去分詞
當要表達再過去的某個時間點,主詞願意或不願意做某件事時,就用「would have + 過去分詞」與「wouldn’t have + 過去分詞」。這個句型強調主詞的意願,但是在在某種條件的影響下,發生的事情與主詞的意願相反; ; 或是在過去某種情況或條件下本來會發生的事情或不會發生的事情,但實際上並未發生或發生了。
Would have + 過去分詞:這個句型用來表示主詞願意做某件事,卻因為某種情況,而沒有做。說話者在陳述時,帶有遺憾、失望、反思、指責、跟感慨的情緒。
- 反思或思考:說話者可能在反思或考慮一個沒有發生的過去。例如,If I had known about the job opening, I would have applied. 如果我知道有工作空缺,我早就去申請了(但事實上,那時候不知道,也就沒有申請)。
- 責備或指責:在一些情況下,這種句型可以用來指責某人或某事。例如,You would have understood the situation better if you had listened to me. 如果那時你有認真聽我說的話,你就會比較清楚情況。(但是,聽話對象沒有認真聽,也就不清楚情況)
- 感慨:在回顧過去,評估一個未能發生的可能性時,可能會有感慨的情緒。例如,She would have made a great leader. 她本來會是一位出色的領導者。
總的來說,”would have + 過去分詞” 的句型涉及到對過去可能的情況的評估,這可能引起一些遺憾、反思、責備或感慨的情緒。
- I would have gone to the concert, but I was too tired.
我本來會去那場音樂會的,但我太累了。
*這句話表示如果我不累,我本來會去派對,但實際上我沒有去,因為我很累,說話者帶有遺憾的情緒。請注意:在句子中,與事實相反的陳述用過去式的情狀助動詞+完成式,而表示過去事實時,則用過去簡單式。 - She would have baked a cake, but we ran out of flour.
她本來會烤蛋糕的,但我們的麵粉用完了。 - They would have bought the house, but it was too expensive.
他們本來會買那個房子的,但它太貴了。
*說話者可能帶有感慨的情緒。 - I would have called you, but I lost my phone.
我本來會打電話給你的,但我遺失了手機。
*說話者為自己過去的某時間點沒有打電話這件事,在做解釋 - You would have loved the movie, but unfortunately it’s no longer showing in theaters.
你本來會喜歡那部電影的,但不幸的是它已經不再上映了。
*說話者帶著遺憾或失望的情緒。但如果語境特殊,語調也特殊或說話者與you的感情不好,也有可能是在幸災樂禍。 - He would have proposed to her, but he got cold feet.
他本來會向她求婚的,但他臨陣退縮了。
*說話者可能帶有遺憾、失望或責備的情緒。
請注意所有例句的前後時態的不同的意涵
Wouldn’t have + 過去分詞:這個句型用於表示在過去的某個時間點,在某種情況下,說話者認為某件事不可能發生的事情,結果因為條件改變,事情卻發生了。使用這種句型時,因為語境跟語調,說話者可能帶有感慨、反思、輕微的指責(批評)、感謝或欣慰的情緒。
- 感慨或反思:如果說話者正在考慮一種沒有實現的可能性,可能會感到感慨或反思。例如:If I hadn’t met you, I wouldn’t have started painting. 如果那時我沒有遇到你,我不會開始繪畫。(事實上遇到了,也在那時就開始畫了)
- 輕微的指責或批評:這種結構也可能用來輕微地指責或批評某人。例如:If you hadn’t insisted, we wouldn’t have missed the last train. 如果你沒有堅持,我們就不會錯過最後一班火車。(事實上,錯過最後一班火車)
- 感謝或欣慰:在積極的語境中,這種句型可能表達感謝或欣慰。例如:If you hadn’t helped me, I would have failed the exam. 如果那時你沒有幫助我,我考試就會不及格。(事實上,對方幫了,說話者也及格了)
這些只是一些可能的情緒,具體的情緒將取決於具體的語境和語調。
- I wouldn’t have known about the surprise party, but my brother told me.
我本來不會知道驚喜派對的,但是我哥哥告訴我了。
*因為我哥哥偷偷告訴我,導致本來我不會知道這件事,卻知道了。說話者的情緒要是說話者當下的語調跟語境而定。
請注意:在句子中,與事實相反的陳述用過去式的情狀助動詞+完成式,而表示過去事實時,則用過去簡單式。 - She wouldn’t have found her keys, but her daughter saw them on the table.
她本來不會找到她的鑰匙的,但她的女兒在桌上看到它們了。 - They wouldn’t have arrived on time, but they caught an earlier train.
他們本來不會準時到達的,但他們搭上了較早的火車。
*說話者可能帶有欣慰的味道。 - I wouldn’t have believed it, but I saw it with my own eyes.
我本來不會相信的,但我親眼看到了。
*說話者帶有感慨的味道,或者在某些語境下,帶有失望的味道。 - You wouldn’t have recognized him. He has changed so much.
你本來不會認出他的,他變化太大了。
*說話者帶有感慨的味道。 - She wouldn’t have married him, but her parents insisted.
她本來不會嫁給他的,但她的父母堅持。 - Without your help, I wouldn’t have passed the exam.
如果你沒有幫助我,我就不會通過考試。
*說話者帶有感謝的情緒,因為他得到好的結果。
第2-6句與第一句相同,都表達事件本來不會發生,卻因為某種情況,而發生了。請注意所有例句的前後時態的不同。
Could have + 過去分詞 / Couldn’t have + 過去分詞
當想要表達在過去的某一個時間點,主詞有能力做到某事,但沒有做,或是談論某件事是否相當可能發生或幾乎不可能發生時,就可以用「could have + 過去分詞」和 「couldn’t have + 過去分詞」 這兩個句型。
Could have + 過去分詞:這個句型用來描述過去的情況下,可能發生卻沒有發生的事情,有兩種用法
- 表示主詞在過去有能力或機會做某事,但實際上並未做。這種情況強調的是主詞的能力或有機會。
- 表示某件事在過去有可能發生,但實際上並未發生。這種情況強調的是事件發生的可能性。
說話者使用這種句型可能帶有遺憾、失望、輕微的責備(批評)、感慨、反思等情緒,如何解讀取決於語境跟說話者的語調。
- I could have gone to the concert, but I had to work.
我本可以去參加音樂會的,但我必須工作。(注意到在前面,說話者使用could have gone代表這件事並未發生,而but後面用過去簡單式代表事件是過去的事實,也就是已發生。)
*遺憾或失望 - I could have gone to university, but I chose to work instead.
我本可以上大學,但我選擇工作。
*可能是遺憾,也有可能是感慨或反思 - I could have studied more for the exam, but I felt prepared enough.
我本可以為考試多學一些,但我覺得我已經準備得很充分了(能做到而未做)。
*可能因為結果不好,所以感到遺憾或反思 - You could have told me you were going to be late. I was worried.
你本可以告訴我你會遲到,我很擔心(能做到而未做)。
*輕微的指責或埋怨 - They could have invited us to the party, but they didn’t.
他們本可以邀請我們參加派對,但他們沒有。
*輕微的指責或埋怨 - You could have helped me with the project, but you were too busy.
你本可以幫我做這個專案,但你太忙了。
*可能是失望、遺憾 - With a bit more effort, we could have won the game.
只要再多努力一點,我們本可以贏得這場比賽的。
*感慨 - They could have invested in that company and made a lot of money.
他們本可以投資那家公司並賺很多錢(有機會,也有錢投資)。注意這裡後半段用and連接的動詞made不是過去式,而是could have made,只是將重覆的字省略,留下過去分詞made,因此,他們沒有投資也沒有賺大錢
*可能是感概
上面1-8句為 「could have + 過去分詞」 用來表示在過去有可能發生的事情,但並未實際發生的例子 - The weather forecast said it could have rained, but it was sunny all day.
天氣預報說可能會下雨,但全天都是晴天。 - The flight could have been delayed due to bad weather, but it wasn’t.
由於天氣狀況不佳,飛機可能會延誤,但事實上並未延誤。 - They could have been in a car accident, but luckily they arrived home safely.
他們可能會遇到車禍,但幸運的是他們安全地回到了家。 - It could have rained yesterday, but it didn’t.
昨天可能會下雨,但實際上沒有。
上面9-12句為 「could have + 過去分詞」 用來表示在過去有可能發生的事情,但並未實際發生的例子。
請注意所有例句的前後時態的不同
Couldn’t have + 過去分詞:用來表示在過去的情況下,某事不可能發生。這個句型比較特殊,有時跟過去事實相反,但在大多情況下,卻又跟過去事實一樣。有兩種用法:
- 表示主詞沒有能力做到過去的某件事
- 反駁過去某件事發生的可能性,也就是說話者認為那件事是幾乎不可能發生的
說話者在使用這種句型時,可能帶有堅信、確定、驚訝、無法置信、辯護等情緒,至於要用如何解讀,取決於說話當下的語境與語調。
- We couldn’t have prevented the accident. It happened too quickly.
我們無法防止那次事故,它發生得太快了。(跟過去事實一樣,無法防止事故,數故發生了)
*說話者可能帶有無法置信的情緒。 - She couldn’t have solved the problem without your help.
如果沒有你的幫助,她不可能解決那個問題。(跟過去事實不一樣,she解決了問題)
*說話者帶有確定的情緒。 - They couldn’t have finished all the work in one day. It’s too much.
他們不可能在一天內完成所有的工作,這太多了。(跟過去事實一樣,無法在一天內完成所有工作)
*後面的句子中,使用現在簡單式,暗示著這句話可能發生在說話者說話的當天,已經快下班了,而事情還沒完成。因語境跟語調的不同,說話者的情緒可能是確定、無法置信或辯護。 - I couldn’t have passed the exam without your help.
如果沒有你的幫助,我不可能通過這個考試。(跟過去事實不一樣,說話者通過了考試)
**說話者帶有確定跟感激的情緒。
1-4句中,「couldn’t have + 過去分詞」 用來說明在某種特定情況下,主詞無法做到的某件事。 - She couldn’t have known about the surprise party; we kept it a secret.
她不可能知道驚喜派對的事,我們一直保密。(跟過去事實一樣,she不知道計畫)
*說話者在反駁計劃被知道的可能性,帶有確定的情緒。 - He couldn’t have seen me at the concert. I wasn’t there.
他不可能在音樂會上看到我,我並沒有在那裡。(跟過去事實一樣,he沒有看到說話者) - She couldn’t have finished the project. She just started yesterday.
她不可能已經完成了項目,她昨天才剛開始。(跟過去事實一樣,she沒有完成項目) - You couldn’t have seen him at the store, he’s out of town.
你不可能在商店看到他,他出城了。(跟過去事實一樣,you沒有看到他) - He couldn’t have stolen the money, he was with me the whole time.
他不可能偷走了那些錢,他一直都在我身邊。(跟過去事實一樣,he沒有偷錢)
*在5-9句中,「couldn’t have + 過去分詞」用來反駁某個事件發生的可能性,也就是說話者堅信這件事幾乎不可能發生。
請注意所有例句的前後時態的不同
Might have + 過去分詞 / Might not have + 過去分詞
說話者使用「might have + 過去分詞跟「might not have + 過去分詞」這兩個句型來表達他認為在過去的某個時間點可能發生或未發生某件事,但到現在,他還不確定自己的想法。這兩種句型都用來談論過去的不確定性,它們用來表示過去可能發生或可能未發生的事情,但都存在一種不確定性。
Might have + 過去分詞:用來表示在過去,某事可能已經發生,但說話者並不確定它是否真的發生。說話者使用這個句型可能帶有不確定、懷疑、擔憂、關心、或猜測的情緒,具體為何取決於語境跟語調。
- He might have taken the last bus home.
他可能搭了最後一班公車回家。
*說話者覺得他有可能搭了最後一班公車回家,但並不確定他是否真的這麼做了 - She might have left her phone at home. She’s not answering.
她可能把手機忘在家裡了。她沒有接電話。
*猜測(因為沒接電話) - She might have missed the bus this morning.
她今天早上可能錯過了公車。 - We might have won the game if we had scored another goal.
如果我們再進一個球,我們可能會贏得比賽。 - They might have forgotten to lock the door.
他們可能忘了鎖門。 - He might have missed the train. He should have been here by now.
他可能錯過了火車。他現在應該已經到這裡了。
*擔憂
Might not have + 過去分詞:用來表示過去可能沒有發生的事情,但現在並不確定它是否真的沒有發生。跟「might have + 過去分詞」一樣,說話者使用這個句型可能帶有不確定、懷疑、擔憂、關心、或猜測的情緒,具體為何取決於語境跟語調。
- She might not have received your email.
她可能沒有收到你的電子郵件(可能到現在她還沒有回信)。
*說話者猜測她有可能沒有收到電子郵件,但並不確定她是否真的沒有收到。 - He might not have heard the alarm clock.
他可能沒聽到鬧鐘(可能他遲到了)。 - You might not have understood the instructions.
你可能沒有理解指示(可能you做錯了某件事,所以說話者這麼說)。 - He might not have taken his medication this morning.
他今早可能沒有吃藥。
*關心或擔憂 - I might not have sent the file correctly.
我可能沒有正確地發送檔案(可能出現錯誤,說話者自己在對自己的做的這件事做猜測,但是到現在自己都無法確定此事是否如此)。
*不確定
以上的例子都是說話者在表達自己覺得某件事在過去可能未曾發生,但事到現在為止都無法確定其是否真的沒有發生。
易混淆的句型
「could / couldn’t have + 過去分詞」以及 「might have / might not have + 過去分詞」這兩種句型都用於表達過去的可能性,但它們的含義和用法有一些細微的差異:
- Could have + 過去分詞 – 通常用於表示過去有能力做某事,或者有可能發生某事,但實際上並沒有發生
- Couldn’t have + 過去分詞 – 則通常用於表示在過去某個情況下,某事是不可能發生的
- Might have + 過去分詞 – 表示說話者認為過去可能發生的事情,但現在並不確定它是否真的發生了。
- Might not have + 過去分詞 – 表示說話者認為在過去某事可能沒有發生,但現在並不確定它是否真的沒有發生。
換句話說,「could / couldn’t + 完成式」更偏向於表示過去的能力或可能性,而「might / might not + 完成式』則更偏向於表示說話者不確定是否發生過某事。
- I could have gone to the party, but I decided to stay home.
我本來可以去派對的,但我決定待在家裡。
*說話者知道去派對這件事沒有發生 - She couldn’t have seen me at the store; I was at home all day.
她不可能在商店看到我,我一整天都在家。
*說話者確定she不可能在商店看到自己 - He might have taken the last bus home.
他可能搭了最後一班公車回家。
*說話者不確定自己的陳述是否為事實 - She might not have received your email.
她可能沒有收到你的電子郵件。
*說話者不確定自己的陳述是否為事實 - You might not have seen him. He was wearing a hat.
你可能沒有看到他,他戴著一頂帽子。
*說話者不確定自己的陳述是否為事實,因為you也有可能看到他,卻沒有認出 - They might not have received our invitation. The postal service has been slow recently.
他們可能沒有收到我們的邀請,最近郵遞服務很慢。
*說話者不確定自己的陳述是否為事實,因為沒有收到對方的確定信(跟邀請人確定要來或不來)
請注意所有例句的前後時態的不同
Needn’t have + 過去分詞
need這個字除了是本動詞外,它也可以當助動詞。當 need用作助動詞時,通常只在疑問句和否定句中使用,而且不像本動詞,助動詞need沒有過去式,都是現在的時態。舉例來說,我們可能會說 Need I say more?(我還需要多說嗎?)或 You needn’t worry.(你不必擔心。)
請注意:在某些方言或日常口說中,我們可能偶而會聽到 needed用作助動詞,如 I needed not do it.,這在標準英語中被認為是錯誤的,在正式的情況下,應該避免這種用法。
「needn’t have + 過去分詞」這個句型常常用於表示說話者認為某個行動在過去是不必要的,而那個行動已經發生了。說話者使用這個句型可能帶有遺憾、關切、感激、批評或失望的情緒,至於如何解讀,取決於語境和語調。
- You needn’t have waited for me. I could have caught a taxi.
你不必等我,我本可以搭計程車回家。
*說話者可能是表達感激 - He needn’t have rushed. The meeting has been postponed.
他完全不必這麼匆忙,會議已經被延期了。
*說話者表達他的關切,認為他不需要趕。 - You needn’t have spent so much on dinner; we could have cooked at home.
你本不必在晚餐上花這麼多,我們本可以在家煮飯。
*說話者表達批評 - We needn’t have cooked so much food. There’s a lot left over.
我們本不必煮這麼多食物,剩下了很多。
*說話者表達批評或懊悔 - She needn’t have worried about the exam. She passed easily.
她本不必為考試擔心,她輕鬆通過了。
*說話者表達他的關切 - You needn’t have bought me a gift.
你本不必為我買禮物的。
*說話者可能是表達感激
請注意所有例句的前後時態的不同
如果你有其他文法上的疑惑,可以到我們『英文文法』專頁,看看有沒有文章探討相關文法問題。如果你對自然發音、字詞、句子結構與寫作等英文學習上各個領域的文章有興趣,可以到我們的『文章』頁面。