全部語法課

第 49 課 · 第 4 階段: 時態與情態動詞

過去完成時

中級

Past perfect

構成與用法

had + 過去分詞 — 在過去另一時刻之前完成的動作

1.形式

過去完成時 = had + V3,所有主語都一樣。縮寫形式:I'd、she'd、they'd;否定式 hadn't。

所有主語
肯定式She had left. / She'd left.
否定式She hadn't left.
疑問式Had she left?
簡略回答Yes, she had. / No, she hadn't.

'd 可能是 had,也可能是 would。看後面一個詞:'d + V3 = had(I'd forgotten);'d + 動詞原形 = would(I'd forget)。另外 'd better = had better。

2.什麼時候用

當你已經在講過去的事,又想再往前推一步時,用過去完成時:這件事發生在過去另一個時刻或事件之前。

1. 發生在過去另一件事之前的事

  • When I got to the station, the train had already left.

    我到車站時,火車已經開走了。

  • I couldn't pay because I'd left my wallet at home.

    我付不了錢,因為我把錢包落在家裡了。

2. 和 by the time、before、already 連用:在那個時間點之前已經完成

  • By the time Mum got home, we had cleaned the whole house.

    媽媽到家的時候,我們已經把整個房子打掃乾淨了。

  • The bakery had sold out of bread before I got there.

    我還沒到,麵包店的麵包就已經賣完了。

3. 到過去某一時刻為止的經歷——had never / had ever … before

  • I'd never seen snow until I went to Sapa last winter.

    去年冬天去沙壩之前,我從來沒見過雪。

  • Had you met him before the wedding?

    婚禮之前你見過他嗎?

4. 轉述過去的想法或話語:realised、knew、found out、said、told…(見“間接引語”一課)

  • I suddenly realised I hadn't turned off the stove.

    我突然意識到我沒關爐子。

  • Tom said he had never eaten durian.

    湯姆說他從來沒吃過榴槤。(他的原話:I have never eaten…)

3.When 後面:一般過去時還是過去完成時?

在 when 後面,換個時態,兩件事的先後順序就變了:

  • When we arrived, the party started.

    我們到的時候,派對開始了。(我們先到,然後派對開始)

  • When we arrived, the party had started.

    我們到的時候,派對已經開始了。(我們到之前派對就開始了)

  • When I got home, Mum cooked dinner.

    我回到家,媽媽就做晚飯了。(我先到家,然後她做飯)

  • When I got home, Mum had cooked dinner.

    我回到家時,媽媽已經做好晚飯了。(我到家時晚飯已經做好了)

先發生的事用 had + V3,後發生的事用一般過去時。不要把 had 放在後發生的事上:When I had arrived, the meeting already started ✗ → When I arrived, the meeting had already started。

4.什麼時候不需要用

  • 按發生的順序講事情 → 用一般過去時就夠了:I got up, had a shower and went to work.
  • 用 after、before、as soon as 時先後順序已經很清楚,所以用一般過去時也可以:After I finished / After I had finished my homework, I went out. 想強調第一個動作已經完成時,用 had + V3。
  • 不要因為事情發生在很久以前就用過去完成時:I was born in 2000.
  • After she had finished the report, she sent it to her manager.

    她寫完報告後,把它發給了經理。(after + had V3 或 after + 一般過去時:都可以)

5.和現在完成時比較,以及相關形式

現在完成時算到現在為止;過去完成時算到過去某一時刻為止。

  • I'm not hungry. I've just eaten.

    我不餓,我剛吃過。(到現在為止)

  • I wasn't hungry. I'd just eaten.

    我當時不餓,我剛吃過。(到那時為止)

  • had been + -ing:一直持續到過去某一時刻的活動——We had been walking for three hours when we found a café. 見“過去完成進行時”一課。
  • had been + V3(被動):When we came back, our bags had been stolen.
  • had + V3 也用來表示與過去事實相反:If I had known, I would have helped(見“第三條件句”一課);I wish I had studied harder.

6.常見錯誤

  • When I arrived, everyone has gone home.

    When I arrived, everyone had gone home.

    參照點在過去(arrived)→ 用 had,不用 has。

  • I hadn't saw him for years.

    I hadn't seen him for years.

    had + V3。

  • When I had arrived, the meeting already started.

    When I arrived, the meeting had already started.

    had + V3 用在先發生的事上(會議開始)。

  • The children were tired because they had swam all afternoon.

    The children were tired because they had swum all afternoon.

    swim – swam – swum:had + V3。

  • She told me she has lost her phone the day before.

    She told me she had lost her phone the day before.

    轉述過去說的話 → 時態往後退:has lost → had lost。

  • I had been born in 2000.

    I was born in 2000.

    不要因為是很久以前的事就用過去完成時。

例句

  • When I got to the station, the train had already left.
  • Lan couldn't get into her flat because she had left her keys at the office.
  • By the time I turned on the TV, Vietnam had scored two goals.
  • I didn't recognise Hoa at the party because she had changed so much.
AI 正在聽...•App Store 和 Google Play 評分 4.7/5

和 AI 說英語 全天 24 小時

立即下載應用 — 即時發音評分、自然對話、像真人老師一樣糾正。

AI 發音評分即時反饋自然對話