• ベストアンサー

if (m == 1 || 2)の意味は?

変数mが1と2の時にif文内が実行されるようにしたつもりが mが5の時なんかにもif文内が実行されてしまいます。 これでは、そのような意味にはならないのでしょうか?

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

  • ベストアンサー
  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

> 変数mが1と2の時にif文内が実行されるようにしたつもりが if (m == 1 || m == 2) の誤りです。 > mが5の時なんかにも if (m == 1 || 2)の場合は、mが1か、または、常に真のときという意味合いになり、結局、ifの中は、常に真になってしまいます。

noname#9262
質問者

お礼

回答ありがとうございました。 なるほど。。そういう意味だったのですね。 ところで。。すご~い!!^^ No.1とNo.2が逆になってるぅぅぅ!!

その他の回答 (2)

  • ranx
  • ベストアンサー率24% (357/1463)
回答No.3

(m==1||2) は、「m=1の時」または「2の時」という意味です。 「2の時」って何?ということになりますが、C言語では、 ゼロが偽で、それ以外は真と決められています。 よって、これはmの値に関係なく真となります。

noname#9262
質問者

お礼

回答ありがとうございました。 面倒で省略してしまったのがまずかったみたいですね。。 でも、勉強になりました。

  • kz2960
  • ベストアンサー率21% (33/154)
回答No.2

if (m == 1 || m ==2 ) では駄目かな?

noname#9262
質問者

お礼

回答ありがとうございました。 やってみますね。結果は少々お待ちください。

noname#9262
質問者

補足

出来ました!みなさんのおっしゃるとおりでした。ありがとうございました。

関連するQ&A