全部語法課

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

過去完成進行時

中級

Past perfect continuous

構成與用法

had been + -ing——一直持續到過去某一時刻的活動

1.形式

過去完成進行時 = had been + 動詞-ing。Had 對所有主語都一樣,所以 he / she / it 也不需要任何變化。

句型例句
肯定式S + had been + V-ingShe had been working. / I'd been waiting.
否定式S + hadn't been + V-ingThey hadn't been sleeping well.
疑問式Had + S + been + V-ing?Had you been waiting long?
問多長時間How long had + S + been + V-ing?How long had he been living there?
簡略回答Yes, S had. / No, S hadn't.Yes, I had. / No, she hadn't.

口語中 had 通常縮寫成 'd:I'd been、she'd been、they'd been。'd 緊跟在 been 前面時,一定是 had。要把 /d/ 讀清楚——不讀的話,I'd been 聽起來像 I been,聽的人就聽不出過去的意思了。

2.什麼時候用

1. 一直持續到過去某一時刻的活動——常和 for、since、all day、how long 連用

  • By the time the doctor came, we'd been waiting for two hours.

    醫生來的時候,我們已經等了兩個小時了。

  • Minh had been working at the bank since 2018 when he decided to quit.

    阿明決定辭職時,他已經從 2018 年起在銀行工作了。

  • How long had you been learning English before you moved to Canada?

    你搬去加拿大之前學了多久英語?

2. 解釋過去的某個情況——在那之前進行的活動(可能剛剛停止)留下了痕跡或結果

  • Her eyes were red. She'd been crying.

    她眼睛紅紅的,她剛才一直在哭。

  • The road was wet because it had been raining all night.

    路面是溼的,因為下了一整夜的雨。

  • I was exhausted when I got home — I'd been standing all day.

    我回到家時累壞了——我站了一整天。

3. 另一件事發生時仍在進行的活動(那件事常常讓它停了下來)

  • Lan had been driving for six hours when she finally stopped for coffee.

    阿蘭開了六個小時的車,終於停下來喝咖啡。

  • They hadn't been dating long when they got engaged.

    他們交往沒多久就訂婚了。

這個時態總需要一個過去的時刻(when I arrived、by the time…、當時的某個情況)作為回看的起點。很多學習者講過去的故事時誤用 have been -ing。如果參照點是現在 → have been -ing;如果是過去某一時刻 → had been -ing。

3.和相近時態比較

Have been -ing 還是 had been -ing? 兩者都表示“做某事做了一段時間”,只是終點不同:一個到現在,一個到過去某一時刻。

  • I've been waiting for twenty minutes. Where are you?

    我已經等了二十分鐘了,你在哪兒?(到現在為止)

  • I'd been waiting for twenty minutes when she finally replied.

    我等了二十分鐘,她才終於回覆。(到她回覆的那一刻為止)

Was -ing 還是 had been -ing? Was -ing = 在那一時刻正在做;had been -ing = 活動在那一時刻之前一直在進行(可能已經停了)。

  • When I got home, Mum was cooking.

    我回到家時,媽媽正在做飯。(她還在做)

  • When I got home, the kitchen smelled of garlic. Mum had been cooking.

    我回到家時,廚房裡一股蒜味。媽媽剛才一直在做飯。(我到之前她在做飯)

Had been -ing 還是 had + V3? Had been -ing 講的是活動和多長時間;had + V3(過去完成時)講的是已完成的結果和多少。

had been + -inghad + V3
重點活動,持續了多久結果,完成了什麼
問句How long…?How many / How much…?
例句She'd been writing emails all morning.She'd written twenty emails by noon.
完成了嗎?不一定是

狀態動詞(know、believe、own、have = 擁有…)通常不用進行形式,所以即使說的是一段時間,也用 had + V3。

  • We had known each other for ten years when we started the company.

    我們創辦公司時,已經認識十年了。(不說:had been knowing)

4.常見錯誤

  • He had been work there for ten years.

    He had been working there for ten years.

    had been 後面要接 -ing。

  • I was tired because I have been driving all day.

    I was tired because I had been driving all day.

    故事發生在過去(was)→ 用 had,不用 have。

  • By noon she had been reading three chapters.

    By noon she had read three chapters.

    完成的數量 → had + V3。

  • I had been knowing him for years.

    I had known him for years.

    know 是狀態動詞 → 不用進行形式。

  • How long you had been living there?

    How long had you been living there?

    疑問句中 had 放在主語前面。

  • She had being waiting for an hour.

    She had been waiting for an hour.

    had + been(be 的 V3),不是 being。

例句

  • Tuan's eyes were red because he had been crying for hours.
  • By the time the bus came, we had been waiting for forty minutes.
  • How long had you been looking before you found a job?
  • Nam had been repairing his motorbike all morning, but it still didn't start.
AI 正在聽...•App Store 和 Google Play 評分 4.7/5

和 AI 說英語 全天 24 小時

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

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