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