仮定法過去(If + 過去完了、主語 + would have + 過去分詞)の並び替え問題ですね。
例文と解説を交えて、様々なパターンを見ていきましょう。
基本的なパターン
- If I had known about the party, I would have gone there.
- もしパーティーのことを知っていたら、行ったのに。
- If she had studied harder, she would have passed the exam.
- もしもっと一生懸命勉強していたら、試験に合格したのに。
倒置の表現
- Had I known about the party, I would have gone there.
- もしパーティーのことを知っていたら、行ったのに。
- より強調したい場合に用いられます。
複合文
- If you had told me the truth, I wouldn’t have been so angry.
- もし本当のことを言っていたら、そんなに怒らなかったのに。
仮定法過去と他の時制の組み合わせ
- If I had studied harder, I could speak English fluently now.
- もしもっと一生懸命勉強していたら、今は英語を流暢に話せるのに。(現在完了)
練習問題
以下の文を正しい順序に並べ替えましょう。
- party / gone / known / would have / I / if / the / about / have.
- harder / she / passed / would have / if / studied / the exam / she.
- told / I / you / would have / if / the truth / me / not been / so angry.
解答例:
- If I had known about the party, I would have gone.
- If she had studied harder, she would have passed the exam.
- If you had told me the truth, I would not have been so angry.
難易度別 仮定法過去の並び替え問題
難易度別問題
初級
- party / gone / known / would have / I / if / the / about / have.
- もしパーティーのことを知っていたら、行ったのに。
- harder / she / passed / would have / if / studied / the exam / she.
- もしもっと一生懸命勉強していたら、試験に合格したのに。
- told / I / you / would have / if / the truth / me / not been / so angry.
- もし本当のことを言っていたら、そんなに怒らなかったのに。
中級
- if / rain / had / not / we / would / have / a picnic / it.
- もし雨が降っていなければ、ピクニックに行ったのに。
- had / I / more / money / I / a new car / bought / would / have / if.
- もしもっとお金があったら、新しい車を買ったのに。
- if / you / me / earlier / called / I / would / have / helped / you.
- もしもっと早く私に電話をかけていたら、君を助けることができたのに。
上級
- had / known / I / that / you / were / coming / prepared / dinner / would / have / I.
- もしあなたが来ることを知っていたら、夕食の準備をしたのに。
- been / if / more / careful / she / would / not / have / such / a / silly / mistake / made.
- もし彼女がもっと注意していれば、そんなばかげた間違いをしなかっただろう。
- had / I / studied / harder / when / I / young / I / could / speak / many / languages / now.
- もし若い頃に一生懸命勉強していたら、今はたくさんの言語を話せるのに。
解答
初級
- If I had known about the party, I would have gone.
- If she had studied harder, she would have passed the exam.
- If you had told me the truth, I would not have been so angry.
中級
- If it had not rained, we would have had a picnic.
- If I had had more money, I would have bought a new car.
- If you had called me earlier, I would have helped you.
上級
- If I had known that you were coming, I would have prepared dinner.
- If she had been more careful, she would not have made such a silly mistake.
- If I had studied harder when I was young, I could speak many languages now.
解説
- 仮定法過去: 過去の事実と異なることを仮定する。If節に過去完了形、主節にwould have + 過去分詞の形をとる。
- 倒置: if節を省略し、hadを文頭に置くことで、より強調された表現になる。