CプログラミングⅠ
条件分岐 : if~else if~else文
if~else if~else文
複数の条件で処理を分ける
条件式1 真 文1-1 偽 文2-1 条件式2 真 偽 文3-1if~else if~else文の書式
if(条件式1){
文1-1;
文1-2;
:
} else if(条件式2){
文2-1;
文2-2;
:
} else {
文3-1;
文3-2;
:
}
文1-2 : 文2-2 : 文3-2 :条件分岐 : if~else if~else文
if~else if~else文
① 条件式1の判定
①-1 条件式1の判定結果が真の場合,
文1を実行し,次の命令へ
①-2 条件式1の判定結果が偽の場合,
文1は実行せずに②へ
② 条件式2の判定
②-1 条件式2の判定結果が真の場合,
文2を実行し,次の命令へ
②-2 条件式2の判定結果が偽の場合,
文2は実行せずに③へ
③ elseの後の文3を実行し,次の命令へ
条件式1,条件式2の順に判定を行い, どれもtrueにならなければ elseの後の命令文を実行if~else if~else文の書式
if(条件式1){
文1;
:
} else if(条件式2){
文2;
:
} else {
文3;
:
}
条件分岐 : if~else if~else文
if~else if~else文のプログラム例
① a に格納されている値が 0 かどうか判定 ①-1 0 であるとき "代入されているのは0"を表示 ①-2 0 でないとき ②へ(②の条件判定へ) ② a に格納されている値が 1 かどうか判定 ②-1 1 であるとき "代入されているのは1"を表示 ②-2 1 でないとき ③へ(③の条件判定へ) ③ a に格納されている値が 2 かどうか判定 ③-1 2 であるとき "代入されているのは2"を表示 ③-2 2 でないとき "0,1,2以外の値"を表示 複数の条件分岐 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: #include <stdio.h> int main(void) { int a;printf("a = "); scanf("%d", &a); if(a == 0) { printf("aに代入されているのは0¥n"); } else if(a == 1) { printf("aに代入されているのは1¥n"); } else if(a == 2) { printf("aに代入されているのは2¥n"); } else { printf("0,1,2以外の値¥n"); } return 0; } 実行結果の例 a = 1⏎ aに代入されているのは1
条件分岐 : if~else if~else文
フローチャート
複数の条件分岐 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: #include <stdio.h> int main(void) { int a;printf("a = "); scanf("%d", &a); if(a == 0) { printf("aに代入されているのは0¥n"); } else if(a == 1) { printf("aに代入されているのは1¥n"); } else if(a == 2) { printf("aに代入されているのは2¥n"); } else { printf("0,1,2以外の値¥n"); } return 0; } 実行結果の例 a = 1⏎ aに代入されているのは1 a == 1
start
end
真 偽 ifプログラムの
フローチャート
aに代入されて いるのは1 aに代入されて いるのは2 a == 2 0,1,2以外の値 偽 真 if int a; a = 1; a == 0 aに代入されて いるのは0 if 偽 真条件分岐 : if~else if~else文
フローチャート
複数の条件分岐 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: #include <stdio.h> int main(void) { int a;printf("a = "); scanf("%d", &a); if(a == 0) { printf("aに代入されているのは0¥n"); } else if(a == 1) { printf("aに代入されているのは1¥n"); } else if(a == 2) { printf("aに代入されているのは2¥n"); } else { printf("0,1,2以外の値¥n"); } return 0; } 実行結果の例 a = 1⏎ aに代入されているのは1 条件が成り立った場合, それ以降の else if(条件式),else の 処理は行わずに, 次の命令(左のプログラムの場合には 次の命令はない)に進む
switch文の書式
switch(式){
case 値1:
文1-1;
:
break;
case 値2:
文2-1;
:
break;
:
:
default :
文n-1;
:
}
条件分岐 : switch文
switch文 : 式の値で処理を切り替える
式 文1-1 式の値が値1のとき 文2-1 文n-1 式の値が値2のときbreak文が
必ず必要!
コロン( : )で あることに注意 その他 : : :条件分岐 : switch文
switch文 : 式の値で処理を切り替える
① 式の判定
①-1 式の値が値1であれば
文1を実行
break文まで実行し,switch文を終了する
①-2 式の値が値2であれば
文2を実行
break文まで実行し,switch文を終了する
①-n 式の値が値1,値2・・・のどれでもなければ
文nを実行
switch文を終了する
式の値(基本的には変数に格納されている値)
によって実行する文が異なる
switch文の書式
switch(式){
case 値1:
文1;
:
break;
case 値2:
文2;
:
break;
:
:
default :
文n;
:
}
条件分岐 : switch文
switch文のプログラム例
① a に格納されている値を判定 ①-1 1 であるとき "aの値は1"を表示 ①-2 2 であるとき "aの値は2"を表示 ①-3 3 であるとき "aの値は3"を表示 ①-4 1,2,3以外のとき "1,2,3以外の値"を表示 処理の切り替え 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: #include <stdio.h> int main(void) { int a;printf("a = "); scanf("%d", &a); switch(a) { case 1: printf("aの値は1¥n"); break; case 2: printf("aの値は2¥n"); break; case 3: printf("aの値は3¥n"); break; default: printf("1,2,3以外の値¥n"); } return 0; } 実行結果の例 a = 2⏎ aの値は2