Code Fix

初級if文の条件式で = と == を間違えて常に真になる › パターン1

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

比較のつもりで==と書くべきところを=と書いてしまうと、比較ではなく代入になり、条件は代入した値の真偽で判定されます。

 1  #include <stdio.h>
 2  
 3  int main(void) {
 4      int ok = 0;
 5      if (ok ___ 1) {
                ^
 6          printf("yes\n");
 7      }
 8      return 0;
 9  }
出力: yes(okが0のはずなのに実行される)期待: 何も表示されない

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

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

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

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

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

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