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