分岐処理とは
構造化プログラミングの柱の1つである分岐処理とは、状況に応じて実行する処理を変えるための構文です。
条件式を評価してその真偽に対応して分岐します。
if文
if文は
if(【条件式】)
{
【条件式が真のときに実行される処理】;
}
のような形で使われます。
また、
if(【条件式1】)
{
【条件式1が真のときに実行される処理】;
}
else if(【条件式2】)
{
【条件式1が偽、条件式2が真のときに実行される処理】;
}
else
{
【条件式1、2共の偽のときに実行される処理】;
}
のように後ろにいくつでもelse文やelse if文を繋げることができます。
以下がサンプルコードです。
if_sample.c
#include <stdio.h>
int main(void)
{
int input;
scanf_s("%d", &input);
if(input > 0)
printf("入力は正の数です。\n");
else if(input < 0)
printf("入力は負の数です。\n");
else
printf("入力は0です。\n");
return 0;
}
switch文
switch文はif文とは違い、条件式ではなく一つの変数の値によって分岐を決定します。l
switch(【分岐用変数】)
{
case 1:【変数の値が1のとき実行される処理】; break;
case 2:【変数の値が2のとき実行される処理】; break;
…
default:【変数の値がどれにも一致しないときの処理】; break;
}
このように使います。
caseの後の値には文字なども使うことができます。
break文を書かないと、該当するcase以下全ての文が実行されます。
以下がサンプルです。
switch_sample.c
#include <stdio.h>
int main(void)
{
int input;
scanf_s("%d", &input);
switch(input)
{
case 0:
printf("0のときの処理");
break;
case 1:
printf("1のときの処理");
break;
case 2:
printf("2のときの処理");
break;
defalut:
printf("それ以外の処理");
break;
}
return 0;
}
三項演算子
if文の省略形です。
【条件式】 ? 【条件が真のときの処理】 : 【条件が偽のときの処理】;
演算子なので引数としても使うことができます。
ternary_sample.c
#include <stdio.h>
int main(void)
{
int input;
int a;
scanf_s("%d", &input);
a = input > 0 ? input : -input;
printf("a = %d\n", a);
return 0;
}
このように使うと、inputが正ならばそのまま、負ならば-をつけて代入しています。
これは絶対値の処理ですね。