# 文法閱讀筆記 16:時態(下)—— 完成式與完成進行式
# 一、完成式的核心概念:「回顧」
完成式=以某個時間基準點為準,往前回顧一個更早就開始、並延續 / 影響到這個基準點的事件。完成式有三大功能:持續、完結、經驗。
# 二、現在完成式的三大功能
# 1. 持續:從過去延續到現在
- We are married.(現在簡單式:當下狀態)
- We were married.(過去簡單式:以前結過婚,暗示現在已離婚,跟現在無關)
- We have been married for 10 years.(現在完成式:結婚狀態持續至今已 10 年)
常搭配:
- for + 時間長度:He has studied for the exam for weeks.
- since + 起點(自從、打從):They have been friends since elementary school.
- 次數副詞:She has read that book twice already.
# 2. 完結:到現在為止已經做完 / 剛結束
- He will eat all the pizza.(未來)/He ate all the pizza.(過去,與現在無關)/He has eaten all the pizza.(現在完成式:剛剛才吃完)
進階用法:即使事件不是「剛剛」發生,只要它對現在造成直接影響,一樣可用現在完成式:
- The meeting has been cancelled.(可能不是剛取消的,但現在仍影響「要不要準備去開會」這件事)
- They have finally made up their minds. He has gone to a meeting in London.
# 3. 經驗:人生至今是否做過某事
中文常用「…… 過」對應此用法:
- She doesn't eat sushi.(現在簡單式:常態,她不吃壽司)
- She didn't eat sushi.(過去簡單式:過去沒吃,暗示現在可能會吃)
- She hasn't eaten sushi.(現在完成式:她沒有吃過壽司的經驗)
- Jim has had three car accidents. He has traveled to Europe twice.
特別的動詞:go 的完成式有兩種形態,語意不同:
| 型態 | 語意 |
|---|---|
| have gone | 已經出發 / 去了(完結),或持續在去做某事(持續) |
| have been(源自 go,非 be 動詞) | 曾經去過 / 到過某地(經驗) |
- He has gone to the doctor to get a check-up.(已經去看醫生了,完結)
- She has been to Germany and Greece on the trip.(曾經去過德國和希臘,經驗)
看到 have been 要留意:它可能是 be 動詞的完成式,也可能是 go 的完成式(表經驗),需依語意判斷。
# 三、現在完成式 vs. 過去簡單式
- I studied English for 5 years.(過去簡單式:以前學了 5 年,現在已經沒學了)
- I've studied English for 5 years.(現在完成式:已經學了 5 年,持續到現在)
- Did you go to Paris last year?(問過去某段時間內的事)
- Have you ever been to Paris?(問「到目前為止」的經驗)
# 四、過去完成式與未來完成式
同樣三大功能(持續/完結/經驗),只是基準點分別移到過去或未來的某一刻。
過去完成式:常搭配一個明確的過去時間點作基準:
- 持續:They had been married for 10 years before they had their first child.
- 完結(凸顯「更早發生」,即「過去的過去」):When I got to the hall, the presentation had started.
- 經驗:Billy was so nervous because he had never had an interview.
未來完成式:常搭配明確的未來時間點:
- 持續:By the end of the month, the price of oil will have risen by 20%.
- 完結(較常見):By the end of the year, I will have saved enough money for a trip to Europe.
- 經驗:未來完成式通常不用來描述經驗(經驗本質上談的是「已發生過的事」,用未來式討論不合邏輯)。
# 判斷用哪個時間點的完成式:只要問「算到何時為止?」
| 中文 | 算到何時 | 時態 |
|---|---|---|
| 她在這間公司已經做了五年了 | 到現在為止 | 現在完成式:has worked |
| 她升職之前,就已經做了五年了 | 到過去某一刻 | 過去完成式:had worked |
| 下禮拜二,她就會做滿五年了 | 到未來某一刻 | 未來完成式:will have worked |
# 五、完成進行式:完成式 + 進行式
完成進行式=完成式的「持續」功能,再疊加進行式「還會繼續發展」的特質。完成進行式只能表達「持續」,不能表達完結或經驗。
- He has worked on the project since last week.(一般完成式:單純描述持續到現在,不確定是否做完)
- He has been working on the project since last week.(完成進行式:強調專案還沒做完、還會繼續做下去)
情境測驗:面試時被問有沒有相關經驗 ——
- ✅ I worked for Apple for three years.(過去簡單式,可能是離職後才來面試)
- ✅ I have worked for Apple for three years.(現在完成式,工作三年剛結束)
- ❌ I have been working for Apple for three years.(完成進行式暗示「還會繼續在 Apple 做下去」,與正在應徵新工作矛盾!)
例外:情緒強調用法 —— 即使事件其實已經結束,說話者仍可用完成進行式強調過程持續不斷、持續很久,帶有情緒色彩:
- Where have you been? I've been looking for you all day long!(找人已經結束,但強調找了一整天、心急如焚)
- I've been waiting for this moment for so long.
- He had been jogging for 15 minutes when he suddenly felt a sharp pain in his leg.(過去完成進行式,同樣的情緒強調)
- I will have been driving for 10 hours when I arrive at my destination tonight.(未來完成進行式,同樣的情緒強調)
# 六、例句精讀分析(聚焦動詞時態)
1. He has been practicing the piano for years and is now a skilled musician.
- has been practicing:現在完成進行式(強調持續/可能仍在練,或強調過程持續不間斷);is:現在簡單式(描述現在的身份)。
- 語意:他練鋼琴已經練了好幾年,現在是位技藝高超的音樂家。
2. He was buying a ticket at the booth when he realized he had lost his wallet.
- was buying:過去進行式(realized 為基準點,買票動作持續中);realized:過去簡單式(瞬間動作,作基準點);had lost:過去完成式(凸顯「弄丟」這件事發生得更早,完結功能)。
- 語意:他在售票亭買票時,才發現錢包弄丟了。
3. Before I arrived at the office, my boss had already left for the day, and he won't be back until tomorrow.
- arrived:過去簡單式;had left:過去完成式(完結,凸顯老闆先離開、我後到的先後順序);won't be:未來簡單式(單純的未來事件)。
- 語意:我到辦公室之前,老闆就已經下班了,他明天才會回來。
4. Although I had been planning that trip for months, I still felt nervous and excited on the day of departure.
- had been planning:過去完成進行式(情緒強調:規劃過程持續很久,或暗示規劃仍不夠充分);felt:過去簡單式(描述當時的心情)。
- 語意:儘管那趟旅程我已經計畫了好幾個月,出發當天我還是感到既緊張又興奮。
5. When I wake up tomorrow, I will have already missed my morning class, so I will have to study extra hard for the next one.
- wake up:現在簡單式(when 引導時間子句,未來事件視為前提);will have missed:未來完成式(完結,以起床為基準點);will have to study:未來簡單式。
- 語意:明天我起床時,就已經錯過早上的課了,所以下一堂課我得更加用功。
6. Although I had heard mixed reviews about the movie, I decided to give it a chance and ended up enjoying it.
- had heard:過去完成式(完結,凸顯「聽到評價」發生在「決定」之前);decided、ended up:過去簡單式。
- 語意:儘管我聽到這部電影評價不一,我還是決定給它一個機會,結果還蠻喜歡的。
7. When I finish my exam next week, I will have been studying non-stop for three weeks, and I will definitely need a nice break.
- finish:現在簡單式(when 時間子句,前提);will have been studying:未來完成進行式(情緒強調:連續讀了三週,強調準備過程持續不間斷);will need:未來簡單式。
- 語意:下週考完試時,我就已經連續讀了三個禮拜的書,到時候絕對需要好好休息一下。
8. Every time I moved to a new city, it took me a while to adjust to my new surroundings, but now I feel like I have found my place.
- moved、took:過去簡單式(過去的常態,搭配 every time);feel:現在簡單式(當下感受);have found:現在完成式(完結,強調「找到歸屬」這件事已經達成)。
- 語意:以前我每次搬到新城市,都要花一段時間適應新環境,但現在我感覺已經找到自己的歸屬了。
9. I have been trying to learn how to cook different cuisines lately. Although I have made some mistakes along the way, I feel like I'm improving with each attempt.
- have been trying:現在完成進行式(持續,暗示還會繼續學);have made:現在完成式(單純完成,不需強調「還會繼續犯錯」);feel:現在簡單式;am improving:現在進行式(逐漸變化的過程)。
- 語意:我最近一直在嘗試學做不同的料理,雖然過程中出了一些差錯,但我感覺每次嘗試都有進步。
10. Since I've been working here for a year, I've learned a lot about the industry and have made some great friends, but I'm thinking about looking for a new job.
- have been working:現在完成進行式(情緒強調:這一年感覺很漫長,暗示這正是想換工作的原因);have learned、have made:現在完成式(持續/完結,一年來的成果);am thinking:現在進行式(目前正在考慮中)。
- 語意:因為我在這裡已經工作一年了,我學到了很多產業知識,也交了一些好朋友,但我在考慮找一份新工作。
# 七、重點整理
- 完成式的三大功能:持續(for/since/ 次數副詞)、完結(可能剛結束,也可能較早結束但仍影響現在)、經驗(對應中文「…… 過」)。
- 判斷用現在 / 過去 / 未來完成式:只問一句話 ——「算到何時為止?」
- go 的完成式:have gone(完結 / 持續:已出發、去了)vs. have been(經驗:曾經去過)。
- 完成進行式 = 完成式(持續)+ 進行式(還會繼續),只能表持續,不能表完結或經驗。
- 完成進行式的「情緒強調」例外:即使事件已結束,仍可用它強調過程「持續不間斷、持續很久」,帶有情緒色彩。
- 學習時態最重要的心法:多觀察母語者的用法,思考「他為什麼要用這個時態、想強調什麼」,比死背公式更有效。