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