C言語の基礎 - 分岐(選択)文

目次

1. ブランチ文とは

2. ブランチツーブラザーズ

        1.if-else文

        2.switch-case ステートメント


1. ブランチ文とは

  •  プログラミングの学習に熱心に取り組み、十分なプログラミング知識を習得すれば、春採用や秋採用で良い内定を得ることができ、人生の頂点に立つことができます。
  • 熱心に勉強せずに勉強を無駄にしてしまうと、卒業することは失業して家に帰ってレンガを運ぶのと同じことになります。

  

 これは分岐 (選択) ステートメントです。

2. ブランチツーブラザーズ

1.if-else文

英語のif-elseの意味は「if-other」で、これは選択的なステートメントであり、式の結果に従ってステートメントの 1 つだけを選択的に実行します。

文法構造:

if(式)

        声明;

if(式)

        声明;

それ以外

        声明; 

 if(式)

        声明;

else if(式)

        声明; 

それ以外

        声明;

C 言語では、0 は false 、ゼロ以外は true であり、式の結果も同様です。 

#include<stdio.h>
int main()
{
    int age;
    scanf("%d",&age);
    if(age >= 0 && age < 18)
        printf("小孩");
    else if(age >= 18 && age < 40)
        printf("青年");
    else if(age >= 40 && age < 60)
        printf("中年");
    else if(age >= 60)
        printf("老年");
    else
        printf("输入年龄错误,请重新输入");
    return 0;
}

これは単純な年齢ごとの選択ステートメントです。

特に注意すべき点は、if-else で制御する文が複数ある場合は、{} で囲む必要があり文が 1 つだけの場合は省略できることです

別のコードを見てください。

#include<stdio.h>
int main()
{
    int a = 1;
    int b = 2;
    if(a == 0)
        if(b == 2)
            printf("hehe");
    else
        printf("haha");
    return 0;
}

このようなコードはどのような結果を出力するのでしょうか?

答えは、何も印刷されません。なぜ?

実際、コード記述仕様は次のようになります。

#include<stdio.h>
int main()
{
    int a = 1;
    int b = 2;
    if(a == 0)
    {
        if(b == 2)
            printf("hehe");
        else
            printf("haha");
    }
    return 0;
}

if と else がペアで出現する場合、else は最も近い if で選択を形成します。ペアを形成するために左に揃えてはなりません。近接性の原則を覚えておいてください。

これは、優れたプログラマーになるためには、他の人がコードを読みやすくするために、コードの作成を標準化する必要があることを教えてくれます

2.switch-case ステートメント

switch-caseの英語の意味は「switch-instance」であり、特定のインスタンスを使用する必要がある場合は、スイッチを押すだけで済むことがわかります

文法構造:

スイッチ(整数式)

{

        case 整数定数式:

                声明;

}

#include<stdio.h>
int main()
{
    int a;
    scanf("%d", &a);
    switch (a)
    {
    case 1:
        printf("星期一\n");
    case 2:
        printf("星期二\n");
    case 3:
        printf("星期三\n");
    case 4:
        printf("星期四\n");
    case 5:
        printf("星期五\n");
    case 6:
        printf("星期六\n");
    case 7:
        printf("星期日\n");
    }
    
    return 0;
}

上記のコードと同様に、週を選択するステートメントを書きました。switch - case の説明によると、各 case はインスタンスであり( ) 内の 'a'が押したいスイッチです。次に、対応するインスタンスを入力します

しかし、このようなコードには次のような欠点があります。

上記のように、 「木曜日」だけを印刷すると以下のものと一緒に印刷されてしまうのですが、これはなぜでしょうか?

実は、これはswitch-case 文自体の欠点で、どの入口から入るかは制御できますが、どこから入ったかを直接実現することができないため、この欠点を解決するにはbreakを使う必要があります。

#include<stdio.h>
int main()
{
    int a;
    scanf("%d", &a);
    switch (a)
    {
    case 1:
        printf("星期一\n");
        break;
    case 2:
        printf("星期二\n");
        break;
    case 3:
        printf("星期三\n");
        break;
    case 4:
        printf("星期四\n");
        break;
    case 5:
        printf("星期五\n");
        break;
    case 6:
        printf("星期六\n");
        break;
    case 7:
        printf("星期日\n");
        break;
    }
    
    return 0;
}

上と同様に、 「暴力的」キーワードであるBreakを使用してswitchステートメントを分割し、どこから入ってどこから出るかを認識します。これにより、望む結果が得られます。したがって、break は switch-case ステートメントの不可欠な部分です

Break に加えて、もう 1 つのキーワードがあります。これも switch-case ステートメントの不可欠な部分です

つまり、デフォルトは英語で「一致しない」という意味です。つまり、すべてのケースが一致しない場合に動作します。

#include<stdio.h>
int main()
{
    int a;
    scanf("%d", &a);
    switch (a)
    {
    case 6:
    case 7:
        printf("weekend\n");
        break;
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        printf("weekday\n");
        break;

    default:
        printf("输入错误,请重新输入");
    }
    
    return 0;
}

1 ~ 7 以外の文字を入力した場合、デフォルトで入力エラーを示唆する必要があります。

同時に、上記のコードは、case の背後にある整数定数式の順序が狂っている可能性があることを誰にでも伝えているように見えますが、順序を守るために、整数定数式を順序通りに記述することをお勧めします。

 


ブランチ (選択) ステートメントに関する知識の共有はこれで終わりです。ご質問や追加がある場合は、お気軽にコメントやプライベート メッセージをお送りください。

ブロガーの記事が気に入ったお友達は、忘れずに3 回クリックしてください。次号でお会いしましょう!

おすすめ

転載: blog.csdn.net/2303_78442132/article/details/132245548