- ベストアンサー
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の設定がいけないのでしょうか? ご教授お願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
(an = 20)なので20に変化するのは当然ですね この時点で真と評価され後の部分は実行されないので20のままとなります。 等しい(an == 20) 等しくない(an != 20)
その他の回答 (1)
- junktoriko
- ベストアンサー率58% (23/39)
回答No.1
条件判定文中では、 == を使います。 = では、値が代入されていまいます。
質問者
お礼
条件判定は=が二つ必要なんですね。 初歩的なことで、お恥ずかしいです。 勉強になりました!
お礼
初歩的なことでお時間をとらせて申し訳ないです。 条件判定中でも代入してしまうんですね、勉強になりました。 ありがとうございました。