4.
分岐処理:用例
分岐処理:用例
変数 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より大きくない”と表示されます。
変数 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 を省略することが出来ます。
- 両辺が等しいことを表す関係演算子は‘==’です。代入演算子の‘=’と間違えないように注意してください。
数値を入力し、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”の組み合わせは、“そうではなく、この場合”という意味になります。
時刻を入力して表示するプログラムです。
正しい数値が入力された場合のみ、時刻を表示します。
#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 文によって実行される文が複数あるので、波カッコ { } を使用し、ブロック化しています。
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 は無くても動作は同じです。