しーげんごこうざ せいぎょこうぶん

計算技術研究会
C言語講座
第二回
制御構文
if , switch
前回の復習
• 前回はSDKの導入とprintfを使って画面に
文字を表示させました。
• 現段階でよく分からない事は前回のpptを参
考にしたり、先輩に聞いてください。
if
• if(条件式){…}
条件式を満たす時に
カッコ内の命令を実行する。
a==0
NO
YES
b++
– 条件式の例
a == 2, b >= 2, c != 3
条件1&&条件2 →and
条件2||条件2 →or
• if(条件式){..A..}else{..B..}
条件式を満たす場合Aを
満たさない場合はBを実行する。
参考
• a=a+1よりもa+=1と書いた方が賢く見えるよ
• a+=1とa++と++aの違い
• a+=1はaの値を1増やす
• a++は「b=a++」のような場合、
「aの値をbに代入した後、1増やす」
• ++aは「b=++a」のような場合、
「aの値を1増やしてから、bに代入する」
#include <stdio.h>
int main(void){
int input;
例.
降水確率を入力して
天気を表示するプログラム
printf("降水確率を入力して下さい:");
scanf("%d",&input);
if(input < 0 || 100 < input) {
printf("0~100の数字を入力して下さい。\n");
}
if(input <= 60){
printf(“晴れています。\n");
}else{
printf("雨が降っています。\n");
}
return 0;
}
やってみよう
• 今作ったプログラムを利用して、
降水確率が40%以下・40%~80%・80%以上の
3つの場合について天気を表示するようにし
みましょう。
• ヒント
if{
・・・
}else if{
・・・
}else if{
・・・
#include <stdio.h>
int main(void){
int input;
解答例
printf("降水確率を入力して下さい:");
scanf("%d",&input);
if(input < 0 || 100 < input) {
printf("0~100の数字を入力して下さい。\n");
}
if(input <= 40){
printf(“晴れています。\n");
}else if(input <= 80){
printf(“曇っています。傘を持っていきましょう。\n");
}else if(input <= 100){
printf("雨が降っています。\n");
}
return 0;
}
#include <stdio.h>
3つの数を入力して
最大値を表示するプログラム
int main(void){
int a,b,c;
printf("1つ目の整数を入力して下さい。:");
scanf("%d",&a);
printf("2つ目の整数を入力して下さい。:");
scanf("%d",&b);
printf("3つ目の整数を入力して下さい。:");
scanf("%d",&c);
if( a > b ){
if(a > c){
printf("最大値は%d\n",a);
}else{
printf("最大値は%d\n",c);
}
}else{
if(b > c){
printf("最大値は%d\n",b);
}else{
printf("最大値は%d\n",c);
}
}
return 0;
}
switch
a
default
1
b++
2
b+=2
3
b=3
b=c
• switch(式){
case 値1: ←コロン
処理1
break;
case 値2:
処理2
break;
default:
処理3
}
例
#include <stdio.h>
int main(void){
アルファベット1文字を入力して
その文字で始まる単語を表示するプログラム
char input;
printf("アルファベットを1文字入力して下さい:");
scanf("%c",&input);
switch(input){
case ‘a’:
//文字は‘ ‘(Shift+7)で囲ってください。
printf("Alpha\n");
break;
case ‘b’:
printf("Bravo\n");
break;
case ‘c’:
printf("Charlie\n");
break;
default:
printf("文字ではないか、登録されていない文字です。\n");
}
return 0;
}
やってみよう2
• 月を整数(int型)で入力して、その英単語を表
示するプログラムを作ってみましょう。
• 例
月を整数で入力して下さい。:8
8月 → August
#include <stdio.h>
int main(void){
int month;
printf("月を整数で入力して下さい。:");
scanf("%d",&month);
switch(month){
case 1:
printf("%d月→January\n",month);
break;
・
・
(省略)
・
case 12:
printf("%d月→December\n",month);
break;
default:
printf("1~12の範囲で入力してください。\n");
}
return 0;
}
解答例