[C言語基礎]switch文で偶数・奇数の判定を行う方法

int型の変数に入っている値をswitch文で偶奇判定するプログラムです。

int a = ...;
switch( a % 2 ) {
    case 0:
        printf( "偶数です\n" );
        break;
    case 1:
        printf( "奇数です\n" );
        break;
}



入力された値が、偶数か奇数かを判定するには2で割った余りを見れば良く、余りが無ければ偶数で有れば偶数となります。C言語で2で割った余りを求めるには、剰余演算子の”%”を使用します。


ちなみに、上記の例はswitchでしたが、偶奇の判定は2分岐なのでifで書いたほうがすっきりします。

int a = ...;
if ( a % 2 == 0 ) {
    printf( "偶数です\n" );
} else {
    printf( "奇数です\n" );
}




ifの条件式はC言語の仕様上、”0の時はfalse,0以外の時trueと見なす”というルールです。
なので、上記コードはさらに簡略化できます。

int a = ...;
if ( a % 2 ) {
    /* 条件式がtrueになる -> 2で割った余りが0ではない -> 奇数である */
    printf( "奇数です\n" );
} else {
    printf( "偶数です\n" );
}




4798101036
Cの絵本―C言語が好きになる9つの扉

関連記事

2 Responses to “[C言語基礎]switch文で偶数・奇数の判定を行う方法”

  1. c初心者 より:

    すいません、上記のように自分もswitch文で作成してみたのですが、これでは負の奇数が入力された場合は表示されませんでした。case -1を追加する以外では、どのように変えればよいのでしょうか。

  2. admin より:

    > c初心者さん

    色々方法はありますが、以下のように符号を取って(数値の絶対値を取得して)判定する方法は如何でしょうか?
    if ( abs(a)% 2 ) {

admin へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。