C/C++

分岐処理-if文,switch文の使い方

更新日:

分岐処理とは

構造化プログラミングの柱の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が正ならばそのまま、負ならば-をつけて代入しています。
これは絶対値の処理ですね。



-C/C++

Copyright© C言語/C++入門講座  ツナサーモン , 2019 All Rights Reserved Powered by AFFINGER5.