全部語法課

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

現在完成進行時

高階

Present perfect continuous

構成與用法

have/has been + -ing — 以前開始、現在仍在繼續的動作

1.形式

現在完成進行時 = have / has + been + -ing。Been 不變,只有 have/has 隨主語變化。

I / you / we / theyhe / she / it
肯定式I've been waiting.It's been raining.
否定式I haven't been sleeping well.She hasn't been working.
疑問式Have you been waiting long?Has it been raining?
簡略回答Yes, I have. / No, I haven't.Yes, it has. / No, it hasn't.

三個部分缺一不可:have/has + been + -ing。常見的失誤:漏掉 been(I have working),把 been 寫成 being(has being working),或忘了加 -ing(has been learn)。

2.什麼時候用

1. 從過去開始、現在還在進行的活動——常和 How long…?、for、since、all day 連用

  • It's been raining since lunchtime.

    從中午開始一直在下雨。

  • How long have you been learning English?

    你學英語多久了?

  • Nam has been working for the same company since 2019.

    阿南從 2019 年起一直在同一家公司工作。

2. 剛剛停止的活動,結果還看得出來

  • Your eyes are red. Have you been crying?

    你眼睛紅紅的,你哭過了嗎?

  • Sorry I'm so sweaty — I've been running.

    不好意思我一身汗——我剛才在跑步。

3. 最近一再做的事——和 lately、recently、these days 連用

  • I've been going to the gym a lot lately.

    我最近經常去健身房。

  • Linh hasn't been sleeping well recently.

    阿玲最近一直睡不好。

3.和現在完成時比較

進行形式強調活動本身和它持續了多長時間;一般形式強調結果——完成了什麼、做到了什麼。

進行形式:have been doing一般形式:have done
活動、過程結果、完成了什麼
多長時間:How long…?、for、since多少:數量、次數
可能還沒完成已經完成
I've been painting the room.I've painted the room.
  • I've been reading this book for a week. I'm on page 90.

    這本書我已經讀了一個星期,讀到第 90 頁了。(還沒讀完)

  • I've read three books this month.

    這個月我已經讀了三本書。(有數量——已完成)

  • She's been writing emails all morning.

    她一上午都在寫郵件。

  • She's written twelve emails this morning.

    她今天上午已經寫了十二封郵件。

計算多少(three books、twelve emails、How many…?)→ 通常用一般形式。說多長時間(for two hours、all day、How long…?)→ 通常用進行形式。

4.狀態動詞

know、like、want、believe、belong、have(= 擁有)這類狀態動詞通常不用進行形式,所以即使說多長時間,也要用現在完成時。

  • I've known Hoa since we were at school.

    我從上學時就認識阿花了。(不說:have been knowing)

  • How long have you had your cat?

    你養這隻貓多久了?(have = 擁有)

live、work、study、teach 用兩種形式都對,意思幾乎一樣。進行形式聽起來更臨時,一般形式更長久。

  • We've been living with my parents since March.

    我們從三月起一直跟我父母住在一起。(臨時)

  • My grandparents have lived in this village all their lives.

    我爺爺奶奶一輩子都住在這個村子裡。(長久)

5.和現在進行時比較

現在進行時只說某事正在發生。一旦加上多長時間(for、since、How long…?),就要用現在完成進行時。

  • We're waiting for the bus.

    我們在等公交車。

  • We've been waiting for the bus for forty minutes!

    我們等公交車已經等了四十分鐘了!(不說:We are waiting … for forty minutes)

中文說“我學英語兩年了”,動詞沒有變化,所以很多人會說 “I'm learning English for two years”,因為這件事還在進行。但一說到多長時間,英語就要用 I've been learning English for two years。

6.常見錯誤

  • It is raining since this morning.

    It has been raining since this morning.

    since → 用完成時。

  • I have been work here since 2020.

    I have been working here since 2020.

    been + -ing。

  • He has being working on this project since March.

    He has been working on this project since March.

    have/has + been,不是 being。

  • I have been studying for this exam since three weeks.

    I have been studying for this exam for three weeks.

    three weeks 是一段時間 → for。

  • I've been knowing her for years.

    I've known her for years.

    know 是狀態動詞 → 用一般形式。

  • Did you been exercising lately?

    Have you been exercising lately?

    疑問句把 have/has 放在主語前——不用 did。

例句

  • My eyes hurt. I have been looking at this screen since nine o'clock.
  • How long have you been learning English?
  • My phone has been ringing for five minutes. Can you answer it?
  • Grandma has been cooking in the kitchen all morning, so lunch will be delicious.
AI 正在聽...•App Store 和 Google Play 評分 4.7/5

和 AI 說英語 全天 24 小時

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

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