unless 節 と if not 節の違い#2
2010-02-26
以前解説した unless 節の「排他的条件」の説明はやや専門的すぎたので、本日は、具体的な例を挙げてもう少し詳しく説明をしましょう。
(1) unless と if not がほぼ同義で使用できるのは、下記の場合です。
a. The software automatically opens this file if it's not currently loaded.
「本ソフトウェアが自動的に当該ファイルを開くのは、現時点でロードされていないときです。」
b. The software automatically opens this file unless it's currently loaded.
「本ソフトウェアが自動的に当該ファイルを開くのは、現時点でロードされているとき以外 (=ロードされていないとき) だけです。」
→このソフトウェアが自動でファイルを開く設定が一つしかないという前提で、両者はほぼ同義となります。言うまでもありませんが、自動でファイルが開く設定が複数存在するならば、上記の unless 節の使い方は間違っていることになります。
(2) unless と if not で意味が異なるのは下記の場合です。
a. You'll be surprised if this file does not open.
「このファイルが開かなければ、あなたは驚くことでしょう」
b. You'll be surprised unless this file opens.
「あなたが驚くのは、このファイルが開くとき以外 (=このファイルが開かないとき) だけです」
→「あなた (=人) が驚く」状況は複数考えられるので、この b. における unless の使い方は不自然になります。
以上をまとめると下記のようになります。
unless 節を if not 節に置き換えて、それに「~だけ」を加えて成立すれば unless ≒ if not で、成立しなければ unless ≠ if not になります。
上記の違いを明確に理解して unless を使用するようにしてください。