初級 › if文で = と == を取り違えたときの挙動 › パターン5
if文で = と == を取り違えたときの挙動
比較のつもりで書いた if (ok = 1) が実は代入文になっているバグです。
1 #include <iostream> 2 int main() { 3 int level = 3; 4 if (level __ 5) { ^ 5 std::cout << "max" << std::endl; 6 } else { 7 std::cout << "not max" << std::endl; 8 } 9 return 0; 10 }
出力: max(levelは3のはず)期待: not max
空欄を埋めてコンパイル・実行を通す
levelの実際の値(3)に関わらず、代入された5が真として扱われてしまいます。
次の問題