第 48 課 · 第 4 階段: 時態與情態動詞
現在完成進行時
高階Present perfect continuous
構成與用法
have/has been + -ing — 以前開始、現在仍在繼續的動作
1.形式
現在完成進行時 = have / has + been + -ing。Been 不變,只有 have/has 隨主語變化。
| I / you / we / they | he / 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.
