- 現在完成式
S + have/has + Vpp + O
使用時機:
1. 表示動作已經完成: already
表示動作尚未完成: yet
2.表示經驗 或 曾經做過: before(還有其他的)
其他關鍵字: just, recently, many times.
3.表動作從過去某一時間發生到(持續)現在(or未來)
since+過去某一時間 (since 子句時 用過去簡單式)
for + 一段時間
else:
* 帶有副詞 ever, never, still, just, already, yet 等的句子,通常需要用 現在完成式 或 過去完成式。
*過去的某個動作,不久前才剛剛完成 (... just...)。
I have just done my homework.
http://www.taiwantestcentral.com/Grammar/Title.aspx?ID=49
- 現在完成式 vs 過去簡單式
現在完成式=> 發生的過去時間不確定 , 可能未來會持續發生過去簡單=>發生在過去特定時間,過去已經結束.
- 現在完成進行式
現在完成式 vs 現在完成進行式
與現在完成式差別不大,現在完成式強調動作 ,完成進行式強調時間.
過去動作持續到現在,並且還在進行中(可用現在完成進行式,也可用現在完成式)
過去經驗or經驗 or 已完成 (只能用現在完成式)
- 進行式 vs 現在完成進行式
進行式不會表達進行多久
現在完成進行式會說動作進行多久,如since.... , for ....
- 過去完成式
通常用於不同時間的兩件事, 先發生的用過去完成式,後發生的事件用過去簡單式來表達
Jack had left his apartment when Sue arrived.
The plane had already taken off when I arrived at the airport.
Nicole said she had already read this novel.
否定句:
What were you gonna do if I hadn't come(p.p) in?
- 過去完成式 vs 過去完成進行式
相差不多,重點在於"過去完成進行式",強調持續的時間
http://www.taiwantestcentral.com/Grammar/Title.aspx?ID=50
- 未來完成式
‧ 「終點」在「未來」的完成式‧ 「will + have + 過去分詞」
與現在完成式相同, 一樣表示 完成、經驗、持續
I will have lived here for five years by end of next month.
下個月底時,我將住滿五年.
* 除了強調持續的時間外,未來完成進行式與未來完成式大致相同。
p.s.網頁 ID=57
when, if 子句
when/ if + S +現在完成式 ,+ S + will +V
條件句有三大類,其中第三類的 If 從屬子句要用過去完成式.
參考其他文法
- 問句
Have/Has + S+ 頻率副詞+ pp + O ?
Have you ever ridden a house?