初級 › if文の条件式で = と == を間違えて常に真になる › パターン5
if文の条件式で = と == を間違えて常に真になる
比較のつもりで==と書くべきところを=と書いてしまうと、比較ではなく代入になり、条件は代入した値の真偽で判定されます。
1 #include <stdio.h> 2 3 int main(void) { 4 int level = 3; 5 if (level __ 5) { ^ 6 printf("max\n"); 7 } else { 8 printf("not max\n"); 9 } 10 return 0; 11 }
出力: max(levelは3のはず)期待: not max
空欄を埋めてコンパイル・実行を通す
levelの実際の値(3)に関わらず、代入された5が真として扱われてしまいます。
次の問題