英語
高校生
解決済み

このカッコに入るものを教えてください。

If your computer ( ) antivirus software, you could have a big problem.
(A)weren’t (B)wasn’t (C)didn’t have (D)hadn’t had

if節の後ろは過去形なのでif節も過去形、つまり仮定法過去だと思ったので(c)だと思いました。でも仮定法過去の否定形では、この様にdidn‘tを持ってきて良いのですか。仮定法過去でdidn’tが用いられているのは見たことがなかったので迷いました。

回答

✨ ベストアンサー ✨

Cでいいと思います。
まず、仮定法過去で否定文のときはdidn'tになりますよ。「仮定法過去 didn't」とかで検索すれば何かしら例文が出てくると思います。

CかDかですが、
「ウイルス対策のソフトがなければ、(いま)大問題になっているかもしれないのに」
実際は、【いま】ウイルス対策のソフトがあるので、大問題になってない、という含みのある文です。

ウイルス対策のソフトは、以前持っていたとしても今持っていなければ意味がないので、
if節は仮定法過去で良いと思います。
つまり答えはCです。

ここから先は読んで意味がわからなかったら流してください

haveという動詞はややこしい部分があって
仮に仮定法過去完了で「あのとき持っていなかったら」という表現をした場合、「実際はあのとき持っていた」という含みがある表現になります。
ですがこれは「あのとき持っていて、その延長で今も持っている」ということは意味しません。
あのとき持っていたのは確かだけれど、今どうしているかには全く触れていないのです。

だからこそ
「以前持っていたとしても、今持ってないと意味がないから、仮定法過去完了ではダメで仮定法過去がここでは正しい」
という理屈で説明できるわけです。

ところが、
似たような動詞でもhaveではなくて、getの場合は
「あのとき手に入れて、その延長で今も持っている」
という意味が成り立つんです。

If you hadn't got antivirus software, you could have a big problem.
「(あのとき)ウイルス対策ソフトを手に入れていなければ、いま大問題になっているかもしれないのに」

これは実際には
「(あのとき)ウイルス対策ソフトを手に入れて、【その延長でそれを今も持っている】から、いま大問題になっていない」
という含みを持っています。

主語をyouに変えてしまいましたが、説明の本質的な部分には影響しません。
haveを使った文もyouを主語にして比較してみてください。

エミリ

詳しくありがとうございます。

この回答にコメントする

回答

仮定法において
If節の中が過去の話ならhave done 今離れなら 過去形
後ろは過去の話なら助動詞の過去形プラスhave done
今離れな。助動詞の過去形+do
仮定法複合型ってやつです。多分w
助動詞の過去形に気づいた瞬間に仮定法を疑って正しいなら(主さんはできてる)次はif節と後ろの時勢を気にしましょう。nowとか明確にされていたらわかりやすいですけど今回そういうのないんで自信ないんですけど多分4です笑

グェスト

dodnt haveを仮定法で見たことないんで多分ないです笑

この回答にコメントする
疑問は解決しましたか?