• ベストアンサー

visual stdio C++ でのif文

C言語の勉強をしようと、『Visual Stdio C++ 2008 Express Edition』をインストールして使用していたのですが よくわからない現象起きてしまったので、質問させていただきます。 例えばint型のanという変数があったとします。 そのanを使って an = 50; if((an = 20) || (an = 30) || (an = 40)) printf("..."); else printf("..."); このようなプログラムを書いたら、if文であるにもかかわらず anの値が20に変化してしまうんです。 もしかすると何かvisual stadioの設定がいけないのでしょうか? ご教授お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

(an = 20)なので20に変化するのは当然ですね この時点で真と評価され後の部分は実行されないので20のままとなります。 等しい(an == 20) 等しくない(an != 20)

komakuma
質問者

お礼

初歩的なことでお時間をとらせて申し訳ないです。 条件判定中でも代入してしまうんですね、勉強になりました。 ありがとうございました。

その他の回答 (1)

回答No.1

条件判定文中では、 == を使います。 = では、値が代入されていまいます。

komakuma
質問者

お礼

条件判定は=が二つ必要なんですね。 初歩的なことで、お恥ずかしいです。 勉強になりました!