サイトマップ / C言語講座出入り口総目次目次:流れの制御>if ( ) - else文(1)

青い直線

if ( ) - else文(1)

青い直線

[whileループ]←このソース→[if ( ) - else文(2)]

/* if ( ) - else文 */

/* if - else文は、下記に示すような形をしています。

    if ( 式1 ) {         // 式1 が真なら
        式2;             // この {  } の中を実行
        式3;
         - - - - ;
    }
    else if ( 式4 ) {    //  式1 が偽で 式4 が真なら
        式5;             // この {  } の中を実行
        式6;
         - - - - ;
    }
    else if ( 式7 ) {    //  式1 式4 が偽で 式7 が真なら
        式8;             // この {  } の中を実行
        式9;
        - - - - ;
    }
    else {               // 式1 式4 式7 が偽なら
        式10;            // この {  } の中を実行
        式11;
         - - - - ;
    }

if ( ) - else文の例

{ }の中の文が1つならば、{ }は省略できます。

    if (x > y)
        printf("x > y\n");

まず、if ( )の( )の式が評価されます。

評価する」という言葉はこれから何度も出てきます。ここで一度に説明することは困難なので、簡単な説明に留めます。この場合は'x > y' を評価すると、真か偽になります。もし真なら評価した結果が0以外の値になります。偽なら0になります。「評価する」と値が返ってきます。

重要:真は0以外の値で、偽は0。

if ( )の( )の中が真なら次の行が実行されます。もし偽なら、実行されません。

関係演算子

'>'は関係演算子(Relational Operator)です。'>'の左辺が右辺より大ければ真になります。'>'の左辺が右辺より小さければ偽になります。

ソースプログラムの中に以下に示す2行があります。最初のif ( )が偽の時実行されます。

    else if (x == y)
        printf ("x = y\n");

'=='も関係演算子です。両辺が等しければ真に、そうでなければ偽になります。ここでも真ならif ( )の次の行が実行されます。

重要:= は右辺の値を左辺に代入する代入演算子です。数学で使われる等号ではありません。

ソースコードの次の2行を下に示します。説明の必要はないでしょう。

    else if (x < y)
        printf ("x < y\n");

次の2行は下に示すように少し形が違います。if ( )がありません。この文はそれまでのif ( )が全て偽であった時必ず実行されます。

    else
        printf ( "???\n" );

*/

/* ここからソースプログラム */

#include <stdio.h>

void  main(void);

void main(void)
{
        int x, y;

        printf("二つの整数をスペースで区切って入力して下さい\t");
        scanf("%d%d", &x, &y);

        printf("\nx = %d   y = %d\n", x, y);	/* x と y の値を表示 */

        if (x > y)                  /* もし x > y ならば */
            printf("x > y\n");      /* ここを実行 */
        else if (x == y)            /* もし x = y ならば */
            printf("x = y\n");      /* ここを実行 */
        else if (x < y)             /* もし x < y ならば */
            printf("x < y\n");      /* ここを実行 */
        else                        /* どれもあてはまらなければ */
            printf("???\n");        /* ここを実行 */
}

/* ここまでソースプログラム */

/* その他の関係演算子

関係演算子は、この他にも <=、 >=、 != があります。<=, >= は、数学で使われているものと同じです。!= は、両辺が等しくなければ真に、そうでなければ偽になります。 */

[whileループ]←このソース→[if ( ) - else 文(2)]

青い直線

/* (C) 2000- YFプロ. All Rights Reserved. */    提供:C言語講座−それ自体コンパイルできる教材を使った講座です−

青い直線

サイトマップ / C言語講座出入り口総目次目次:流れの制御>if ( ) - else文(1)