✔ 最佳答案
既然你知道了在副詞子句中要用現在式代替未來,其實下面的東西你應該是不難理解。
我們知道時態的構成是由"時間"和"動作狀態"決定的;"時間"有"現在、過去、未來","動作狀態"則有"簡單式、進行式、完成式"三種,因此,我們可以配出九種時態出來。
知道了這個之後,我們可以把你問題的範圍縮小到現在式下的三個動作狀態下討論:
1. 簡單現在式 - 這就是你問題裡所講的"現在式";一般我們在講簡單現在式的時候通常就直接說它是"現在式"了,可能是因為這樣你才搞不清楚。回想一下簡單現在式拿來表現什麼樣的動作狀態:習慣、大自然定律...等等;但它也會用不強調動作正在進行的方式來單純表現一個動作,這就是為什麼很多老美講故事的時候喜歡用簡單現在式的原因:相較於過去式更有生動的感覺,又不像進行式把動作的時間點變得很狹隘(同一個時間不太能"正在做"太多事情吧!)。
2. 現在進行式 - 強調在某個時間點動作正在進行,這個時態相信你不會很陌生,在此我不贅述。
3. 現在完成式 - 不搭配since或for時,現在完成式用來表現動作"已完成"。現在完成式的其它用法,也請你自己去查(我們把焦點擺在"副詞子句"就好了!)
另外,也請你看一下關於"未來完成式":用來表現在未來某個時間點時(前),動作將已完成。
OK! 現在該有的觀念已經交代清楚了,回過頭看你的問題吧!
Let's welcome him when he comes home.
=> Let's welcome him when he has come home.
這樣的改法不是很理想,大部分人會偏向簡單現在式的用法;原因很簡單:簡潔有力。可以直接用簡單現在式的話,沒有必要給自己添麻煩地去用現在完成式。
此外,倘若你用現在完成式,依副詞子句是拿現在式代替未來的邏輯反推回去,你實際上是用"未來完成式"。即,你似乎在說:"他回到家以後(完成了"回家"的動作之後)咱們來歡迎他。"這句跟用簡單現在式(也就是原本的簡單未來式)所表達的:"他回家時咱們來歡迎他。",時間點上就有落差;前者給人的感覺像在放馬後砲,後者比較有一回到家就馬上給予歡迎的動作、比較即時的感覺;簡而言之就是,完成式強調的是動作已完成,簡單式強調的是動作的即時性,因此,根據句意來判斷的話,用簡單式相較下是比較合理的。
上面的懂了之後,第二句你就不難理解:句子裡面要強調的是"咖啡喝完後",也就是"完成喝完這個動作",所以完成式似乎是比較好的選擇。不過我也要告訴你,其實你用簡單式來寫,也沒有什麼問題,因為你前面用了until這個字,它本身就讓動作的先後關係表現得很清楚了,即使不用完成式,我們也能很明確的感覺到"我"是要等到John喝完他的咖啡。
講到這裡,相信你發現了,你並非對副詞子句不了解,而是對時態的熟悉度不夠!也因此第一位回答的人也沒有用"副詞子句"的觀點來回答你的問題,因為你問題癥結並不在副詞子句!
我的感覺是你文章可能還看不夠多,可能要再多看點文章,培養對時態的熟悉度。
熟悉時態在英文裡面固然重要,但有時對單字的感覺也是不可或缺的;像這邊,就簡單用個until,就可以省去後面用完成式這一步。總而言之,還是給你一個我老是強調的觀念:文法僅供參考,請勿直接套用。建立基本文法觀念是必要的,但也要給自己留一點變通的空間可以接受例外,那才是真正在學語言!畢竟語言是無時無刻跟著人們使用的便利性在變的,不然怎麼會有"活語言"和"死語言"的分別呢?
希望有解答你的疑惑喔!呼~ 凌晨1點>"< 來去睡覺了...
2007-10-09 23:56:12 補充:
嗯... 出來念書的~ 明年就回台灣了;我三不五時會常上來知識+逛逛,回答一些覺得有趣的問題。