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