謎の現象に遭遇したのでどういう理屈か教えてください。
例えば
BOOL test;
if (test == YES) NSLog(@"1");
if (test) NSLog(@"2");
BOOL question;
if (question) NSLog(@"3");
if (question == YES) NSLog(@"4");
//おまけ
question = !question;
if (question) NSLog(@"5");
if (question == NO) NSLog(@"6");
if (question == YES) NSLog(@"7");
をXcodeで実行した時に
1
2
3
6
が出力されます。
なぜ、1 は出力され 4 は出力されないのでしょうか?
これは初期化してあるはずのものでも同様の事がおこりました。
if (test)
と
if (test == YES)
に違いがあるのでしょうか?
もしかしたら情報科学の方達には当たり前のことかも知れないですが、どなたか教えてください。
謎過ぎて眠れません。