Ans:
假設法的用法:
1、假設的部分我們可以稱之為條件子句
與事實相反的句子是由時態往前推一級,
如:條件子句而言,反現在用過去式,反過去用過去完成式,
與現在事實相反裡的Be動詞只用were
因此,若相反於過去事實,則應用過去完成式:
If+S+had+V-en, S+should (would, could, might)+have V-en....
=Had+S+V-en S+should (would, could, might)+have V-en....
例:如果當時我知道你要來,我會做個蛋糕給你。
If I had known you were coming, I should have baked a cake.
=Had I known you were coming, I should have baked a cake.
2、遇到主要子句和條件子句所反的事實是屬於不同時態時,必須分別依所反的時態來寫。
因此,如果條件句相反於過去,而結果子句(主要子句)相反於現在,則改用:
If+S+had+V-en, S+should (would, could, might)+V…now (today, this year, this time).
=Had+S+V-en, S+should (would, could, might)+V…now (today, this year, this time).
例:假使你去年更用功研讀英文的話,你現在或許就熟練它了。
If you had studied English more industriously last year, you might be proficient in it now.
=Had you studied English more industriously last year, you might be proficient it now.
由上可知您問的
○ If it had rained a lot last month, we would have enough water now.
× If it had rained a lot last month, we would have had enough water now.
以上參自:
http://www.wretch.cc/bl.../13808669 http://www.nani.com.tw/nani/.../sleng_d.jsp (ps:以上解釋若有錯誤,煩請高手不吝指正,謝謝。)