甚麼時候要用英文時態中的”Perfect tense”「完成式」?

英文文法中的”Perfect tense”「完成式」是用來表示「已完成」的動作,既然是「已完成」,為甚麼不是用”Past tense”「過去式」?

一種特別的時態: 「完成式」 Perfect Tense


“Perfect tense”分爲六種不同時態:

  • 過去完成式 Past perfect tense
  • 過去完成進行式 Past perfect progressive tense
  • 現在完成式 Present perfect tense
  • 現在完成進行式 Present perfect progressive tense
  • 未來完成式 Future perfect tense
  • 未來完成進行式 Future perfect progressive tense

過去完成式 Past Perfect Tense

先來看看”Past perfect tense”的用法吧。

用”Past perfect tense”的時候,動詞前面要加上”had”,而動詞本身也要用”Past participle”「過去分詞」。

有些過去分詞是直接在動詞後面加”ed’,像”Walked”, “Talked”, “Kicked”等,有些就沒有那麼簡單囉,比如: “Spoken”, “Eaten”, “Heard”等。


“Past perfect tense”的用法有點特別: 句子中必須有兩個已發生的動作才能使用。

假設A和B是兩個已發生的動作,而A發生的時間比B早,這時候A就要用”Past perfect tense”,而B則是用”Past tense”「過去式」。

(1) He had studied computer programming before he went to college.
他上大學以前就學過電腦程式設計。

「學電腦程式設計」這個動作在他「上大學」之前已發生,而他已經大學畢業了,所以「學電腦程式設計」必須用Past perfect tense。


(2) I only understood the movie because I had read the book.
因爲我看過那本書,所以我才明白這部電影到底是在講甚麼。

因為在「看電影」之前就已經「看過書」,所以「看書」要用過去完成式。

(3) She felt sad about leaving Thailand because she had lived there for more than five years.
她對要離開泰國感到傷感,因為她住在那裡五年多了。

她已經離開泰國,所以「感到傷感」是過去發生的事,而「住在泰國」是更之前發生的事,所以要用過去完成式。


過去完成進行式 Past Perfect Progressive/Continuous Tense

再來看看”Past perfect progressive tense”的用法囉。

用過去完成進行式的時候,動詞前面要加上”Had been”,而動詞要加上 “~ing”。

跟”Past perfect tense”一樣,”Past perfect progressive tense”必須要有兩個已發生的動作才能使用。

假設A和B是兩個已發生的動作,而A發生的時間比B早,而且在B發生的時候,A還在進行中,在這情況,A要用「過去完成進行式」,而B則是用「過去式」。

(4) They had been talking for over two hours before I arrived.
在我到達之前,他們已聊了兩個多鐘頭。

「我到達」和「他們聊天」兩件事都是已發生的事情,在「我到達」之前,他們就一直在聊天,到「我到達」都還在聊,所以「聊天」要用Past perfect progressive tense.

(5) My dad had been driving me to school before I got my driver’s license.
在我拿到駕照之前,都是我爸開車載我去學校。

「拿到駕照」和「我爸開車載我去學校」都是已發生的事,在「我拿到駕照」之前,都是「我爸載我」,所以「我爸載我」這個動作要用簡單過去完成進行式。

現在完成式 Present Perfect Tense

用Present perfect tense的時候,動詞前要加上”has”或”have”,而動詞要用過去分詞。

Present perfect tense是用在已完成的動作上,那跟Past tense的用法有甚麼不同?

一起來看看以下兩句例句,你們能看出這兩種時態的分別嗎?

(6) He talked to Mary about James last night.
昨天晚上他跟Mary說了James的事情。


(7) He has talked to Mary about James.
他跟Mary說了James的事。

  • 當一個動作是在過去某個時間完成,必須用過去式”Past tense”。
  • 當一個動作在過去完成,可是沒有註明完成的時間,那就要用現在完成式。

(8) He lived in Taiwan for five years.
他曾經在台灣住了5年。

(9) He has lived in Taiwan for five years.
他已經在台灣住了5年。

例句(8)和(9)是不是很像呢? 其實它們的意思是有差別的,(8)表示他現在不是住在台灣,(9)表示他現在還是住在台灣。

“Present perfect tense”還可以用來表達經驗、經歷過的事情。

(10) I have been to Japan five times.
我去過五次日本。

(11) I think I have seen this movie before.
我應該看過這部電影。

“Present perfect tense”的另一個用法,是用來表示在某段時間發生的改變。

(12) Kevin has grown taller since I last saw him.
跟上次見他的時候相比,Kevin長高了。

(13) My Chinese has improved since I moved to Taiwan.
我搬到台灣後,中文進步了。

還有一種情況會用到Present perfect tense: 當你期待的事情沒有發生,你還在等待它發生。

(14) He hasn’t arrived yet.
他還沒到。[還在等他]

(15) The rain hasn’t stopped.
雨還沒停下來。[還在等雨停]


現在完成進行式 Present Perfect Progressive Tense

用現在完成進行式的時候,動詞前要加上”has been”或”have been”,而動詞要加”~ing” 。

使用現在完成進行式的情況: 當你要表達一個在過去就開始進行,而且還在進行的動作。

(16) She has been studying English for three years.
她已經學英文三年。[她現在還在學英文]

(17) I have been waiting for over two hours.
我已經等了兩個多鐘頭。[我還在等]

現在完成進行式也可以用來表達「最近」的意思,這時候句子通常會出現 “Recently”或”Lately”這兩個英文單字。

(18) I haven’t been working out lately.
我最近沒有做運動。

(19) He has been playing too much video games lately.
他最近花太多時間打電動。


未來完成式 Future Perfect Tense

奇怪! 既然是「未來」,怎麼會用「完成式」?

簡單來說,”Future perfect tense”是表達在未來會完成的動作。

用未來完成式的時候,要在動詞前加上”Will have”或”Going to have”,而動詞要用過去分詞。

假設A和B是兩個還沒有發生的動作,在B發生的時候,A將會完成,那我們就要用Future perfect tense來表達A。

(20) By the time he gets home, she will have cooked dinner.
當他回到家的時候,她將會煮好晚餐。

「他回到家」是未來才會發生的事情,而「煮晚餐」會在「他回到家」發生的時候完成,所以「煮晚餐」要用未來完成式。

(21) By next Friday, I will have received the parcel.
下星期五我就會收到包裹。

「下星期五」還沒有到,到那個時侯「收包裹」這個動作就會完成,所以「收包裹」要用未來完成式。


未來完成進行式 Future Perfect Progressive Tense

用未來完成進行式的時候,動詞前要加”Will have been”或”am/is/are going to have been”,而動詞要加”~ing”。

假設A和B是兩個還沒有發生的動作,在B發生的時候,A是在進行中的狀態,我們要用未來完成進行式來表達A。

(22) He will have been studying Chinese for more than a year by the time he leaves Taiwan.
到他離開台灣的時候,他將會學中文一年多。

「離開台灣」是未來才會發生的事,而他「學中文」這個動作現在已經在進行中 (他在學中文),所以「學中文」這個動作要用未來完成進行式。

(23) We are going to have been driving for over three hours when we arrive in Kaohsiung.
當我們到高雄的時候,我們將會開了三個多小時車。

「到高雄」還沒有發生,「開車」是正在進行的動作,所以要用未來完成進行式。

“Future perfect tense”「未來完成進行式」還可以用來表示一件將會發生的事情的原因。

(24) He will be tired when he gets home because he will have been working for over 10 hours.
他回到家將會很累,因為到那時候他已經工作超過十小時。

「他回到家將會很累」是在未來的事情,而這件事的原因是因為他「將會工作超過十小時」(他現在在工作中),所以工作要用未來完成進行式。

(25) Her Chinese will be perfect when she returns to the United States because she is going to have been studying Chinese in Taiwan for over three years.
當她回美國的時候,她的中文會很棒,因為到時候她已經在台灣學中文超過三年。

「當她回美國的時候,她的中文會很棒」是未來的事,而她現在正在台灣學中文,所以學中文要用未來完成進行式喔。

如果你喜歡這篇文章的話,可以到小格子教英文的 Facebook 按個讚嗎? 謝謝啦!


歡迎留言

Tags: 英文文法