よくこんがらかるunlessと&&,||の組み合わせについて見ていきます。これは表で見ると理解しやすいでしょうか。
unless A && B
unless A && B p "Hello, World!" end
A && B | unless A && B | |
---|---|---|
A=true,B=true | true | false |
A=true,B=false | false | true |
A=false,B=true | false | true |
A=false,B=false | false | true |
表から分かる通り、A=true,B=trueのときだけ「unless A && B」がfalseとなるので、A=true,B=trueのときだけunless内の処理が実行されない。
unless A || B
unless A || B p "Hello, World!" end
A || B | unless A || B | |
---|---|---|
A=true,B=true | true | false |
A=true,B=false | true | false |
A=false,B=true | true | false |
A=false,B=false | false | true |
表から分かる通り、A=false,B=falseのときだけ「unless A || B」がtrueとなるので、A=false,B=falseのときだけunless内の処理が実行される。