目次

 

 

 

 

 

Top >C言語入門 とりあえずのC言語

4. 分岐処理:用例

分岐処理:用例
用例 4.1

 変数 x、y に値を入力し、x と y の大小関係を表示します

#include <stdio.h>

main( )
{
    int     x, y;

    printf( "xの値を入力してください\n" );
    scanf( "%d", &x );

    printf( "yの値を入力してください\n" );
    scanf( "%d", &y );

    if( x > y )
        printf( "xはyより大きい\n" );
    else
        printf( "xはyより大きくない\n" );
}
  • 条件式 x > y を評価した結果が真(True)であれば、xはyより大きいと表示されます
  • 条件式を評価した結果が偽(False)であれば、else に続く文が実行され、xはyより大きくないと表示されます
用例 4.2

 変数 x、y に値を入力し、x と y の大小関係を表示しますあえて、else を使用しないプログラムとしています

#include <stdio.h>

main( )
{
    int     x, y;

    printf( "xの値を入力してください\n" );
    scanf( "%d", &x );

    printf( "yの値を入力してください\n" );
    scanf( "%d", &y );

    if( x > y )
        printf( "xはyより大きい\n" );

    if( x < y )
        printf( "xはyより小さい\n" );

    if( x == y )
        printf( "xとyは等しい\n" );
}
  • if 文では、else を省略することが出来ます
  • 両辺が等しいことを表す関係演算子は==です代入演算子の=と間違えないように注意してください
用例 4.3

 数値を入力し、0 であるか、正の数であるか、負の数であるかを表示します

 if ~ else if ~ else を組み合わせた例です

#include <stdio.h>

main( )
{
    int     x;

    printf( "数を入力してください\n" );
    scanf( "%d", &x );

    if( x == 0 )
        printf( "ゼロです\n" );
    else if( x > 0 )
        printf( "正の数です\n" );
    else
        printf( "負の数です\n" );
}
  • else ifの組み合わせは、そうではなく、この場合という意味になります
用例 4.4

 時刻を入力して表示するプログラムです

 正しい数値が入力された場合のみ、時刻を表示します

#include <stdio.h>

main( )
{
    int     hour, minute;

    printf( "何時?\n" );
    scanf( "%d", &hour );

    if( 0 <= hour && hour < 24 ){
        printf( "何分?\n" );
        scanf( "%d", &minute );

        if( 0 <= minute && minute < 60 )
            printf( "%d時 %d分です\n", hour, minute );
        else
            printf( "0~59を入力してください。\n" );
    }
    else{
        printf( "0~23を入力してください。\n" );
    }
}
  • 変数 hour に、0 ~ 23 以外の数値が入力された場合には、0~23を入力してくださいと表示します
  • 変数 hour に正しい数値が入力された場合には、変数 minute の入力を行います
  • 変数 minute に、0 ~ 59 以外の数値が入力された場合には、0~59を入力してくださいと表示します
  • hour、minute 共に正しい数値が入力されると時刻を表示します
  • if 文によって実行される文が複数あるので、波カッコ { } を使用し、ブロック化しています
用例 4.5

 switch 文の例です何月であるかを入力し、該当する季節を表示します

#include <stdio.h>

main( )
{
    int     month;

    printf( "何月ですか?\n" );
    scanf( "%d", &month );

    switch( month ){
        case 3:
        case 4:
        case 5:
            printf( "春\n" );
            break;
        case 6:
        case 7:
        case 8:
            printf( "夏\n" );
            break;
        case 9:
        case 10:
        case 11:
            printf( "秋\n" );
            break;
        case 12:
        case 1:
        case 2:
            printf( "冬\n" );
            break;
        default:
            printf( "月は1月~12月までです\n" );
            break;
    }
}
  • month が 3、4、5 の場合には、と表示します
  • month が 6、7、8 の場合には、と表示します
  • month が 9、10、11 の場合には、と表示します
  • month が 12、1、2 の場合には、と表示します
  • printf の後に break がありますから、switch 文を抜けます
  • month が 1 ~ 12 以外であれば、default 以降の文が実行されます
  • default の後にある break は無くても動作は同じです
PAPER BOWL
NEZEN