- ベストアンサー
C言語のif文について(初歩の初歩の初歩)
- C言語のif文について(初歩の初歩の初歩)
- C言語のif文について、numが偶数であるかどうかを判定する方法と、numが0であるかどうかを判定する方法について説明します。
- C言語のif文を使って条件分岐する際、条件が「偽」であるときに特定の処理を実行するためには、「非0」を条件として指定することがあります。しかし、「真」か「偽」かでみると逆になるため、わかりづらいと感じる場合もあります。一般的には、条件が「偽」であることを明示するために、「!=」を使用して0以外の値を条件として指定する方法が一般的です。この方法を使えば、常に条件が「偽」のときに特定の処理を実行することができ、わかりやすいコードを書くことができます。ただし、自分が理解しやすい方法でプログラムを書くことが重要であり、他の人に理解してもらうためには、適切なコメントや変数名なども使用する必要があります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
あくまでifの中は真か偽かで判断するようにしましょう。 num%2はnumを2で割ったあまりを求めているので、「割り切れたら」が「真」ではありません。 「あまりが0でない」が「真」です。 「割り切れたら」を「真」にしたいなら、条件は「余りが0である」になるので if ((num%2)==0) になります。
その他の回答 (3)
- aiueo6391
- ベストアンサー率23% (3/13)
苦しんで覚えるC言語の本があるのですが、お勧めだと思いますよ。 実際苦しんで覚えるどころか、解りやすく、理解しやすいので。 http://www.amazon.co.jp/%E8%8B%A6%E3%81%97%E3%82%93%E3%81%A7%E8%A6%9A%E3%81%88%E3%82%8BC%E8%A8%80%E8%AA%9E-MMGames-x/dp/4798030147/ref=sr_1_1?s=books&ie=UTF8&qid=1456852654&sr=1-1&keywords=C%E8%A8%80%E8%AA%9E
お礼
ありがとうございました。
- notnot
- ベストアンサー率47% (4900/10358)
命題の文章をどう書くかによって、同じ事象でも真になったり偽になったりしますよ。 ・今日は偶数日だ・・・・・3月1日なので偽 ・今日は奇数日だ・・・・・3月1日なので真 if (x) は、『xが非ゼロで「ある」とき』ですが、「ない」と書きたければ、 『xがゼロで「ない」とき』 になります。どちらも同じ意味です。 > if(num % 2) > とするときnumが2で割り切れ「ない」とき これは、numを2で割った余りが非ゼロで「ある」とき です。
お礼
ありがとうございました。
- titokani
- ベストアンサー率19% (341/1726)
こんにちは。 比較演算子は==と!=だけではありません。> < >= <= の時はどう考えるのですか? また、関数の戻り値が真偽値であることもあります。 この場合 if( isXXXX() )~ という書き方になります。 また、変数に真偽値を持たせることもあります。 この場合は if( isYYYY )~ という書き方になります。 (関数名、変数名がisで始まるのは真偽値であるということですが、このへんは単なるコーディング規則ですので、この通りでなくても問題はありません。) といったことを考えてみると、質問者さんの考えた方法は、あまり意味がなく、場合によってはむしろ読みづらいコードになってしまうと思います。 ちなみに、 if( num != 0 ) と if( num ) は同じ動作となります。 どちらでも構わないのですが、私の場合はnumが数値である場合には、 if( num != 0 ) と書きます。 numが真偽値である場合には if( num ) と書きますが、変数名がnumのままだといかにも数値を入れる変数っぽいので、別の変数名にすることでしょう。
お礼
ありがとうございました。
お礼
ありがとうございました。