Code Fix

初級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

空欄を埋めてコンパイル・実行を通す

広告
広告スロット(未設定)

if文の条件式で = と == を間違えて常に真になる

エラーにはならず、意図しない分岐が起こります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)