- ベストアンサー
if節の中の時制がよく分かりません
全く初歩的な質問で恐縮なんですけど、If you haven't received the book you ordered by tomorrow, please let us know. という文章の haven't received は、何で didn't receive や won't receive ではダメなんですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
大丈夫ですよ、初歩的ではありません。誰もが一度は迷う部分です。 こんなこと知らない人はいくらでもいますよ。 この文章を和訳すると 「もしあなたが注文した本が明日までに届かなかったら、知らせてください」 となります。まずは過去のことを話しているわけではないので過去形ではない、ということを理解しましょう。 そして次に知らなければならない知識は 「条件を表す副詞節の中で未来形は使えない」ということです。 つまり時を表すwhenや今回のように条件を表しているIf節の中では未来形は使えないのです。 本を受け取るのは今から明日までのいつか、です。つまりここでは本来は未来完了形を使うことが妥当です。 ですが先も述べたようにここでは未来完了をつかうことはできません。未来完了は未来形のひとつですからね。 そこで未来完了の代わりに現在完了を使うのです。 結論をまとめると 「条件を表す副詞節の中では未来完了は使わずに、代わりに現在完了を使う」です。 ちなみに質問者さんが仮定法を考えているのであれば話はまた少し変わってきます。 仮定法は現実には起こりそうにないことを言うときにのみ使います。ここで使うと明日までに本が届く可能性は極めて低い、と考えていることになります。そうではありませんよね? 以上の理由から現在完了を使うのが適当となります。
その他の回答 (1)
- kokokina
- ベストアンサー率55% (25/45)
No.1の者です。少し補足させていただきます。 if節の中で未来形が使われること、実はあります。 ただそれは「条件を表す副詞節」ではないときです。 たとえば、 I asked him if he will leave for Japan tomorrow. のようなときです。和訳すると 「私は彼に明日日本に出発するのかどうか尋ねた」 となります。このときのif節は副詞節ではないのです。 ここではif節はaskの目的語、つまり名詞節として働いています。このような場合には未来形をつかうことができます。 また、 If you go to school,you will meet your friend. のような文は正しいです。未来形が入っているのはif節ではありませんからね。 ただ以上のようなルールは自分が書くときにこそ、特に試験などでは気にしなくてはならないところです。 しかしもし副詞節内で平然とwillが使われてる文を見たとしても、気にしては負けです。 日本語でもそうですが、何事にも例外はあります。また、その文を書いているネイティブがそんなこと気にしない、ということもあるようです。 自分の知識に合わない文章がでてきたときに、気にしないことというのは大事です。
お礼
回答ありがとうございました。おっしゃる通り僕は仮定法と勘違いしていました。「明日までに本が届くのが普通で、届かない可能性はまずないけれど、それでももし…」という意味で。 それから僕はif節の中でもwillが使われている例文を何度も見てきた記憶があるので、それと混同していました。