C言語ブランチステートメント
1.ステートメントとは
文:C言語では、1つあります; 1つの文で区切られます。
例えば:
int a = 10;
printf("haha\n");
10;
'A';
; //空语句,啥都不执行
2.分岐ステートメント(構造を選択)
2.1ifステートメントと注意事項
2.1.1文法構造
(1)
if (表达式)
{
代码块;
}
(2)
//二选一
if (表达式)
{
代码块1;//表达式为真
}
else
{
代码块2;//表达式为假
}
(3)
//多分支 多选一
if (表达式1)
{
代码块1;
}
else if (表达式2)
{
代码块2;
}
else
{
代码块3;
}
説明:
1。ステートメントが選択分岐ステートメントである場合、1つの条件が満たされている限り、他のステートメントは実行されません。
2. if()が()の式によって返される結果を判断した後。C言語では、0は偽であり、ゼロ以外は真です。
3.(flag = 6)のように誤記されないように条件を判断し、(6 == flag)のように書くことができます。
3. {}はコードブロックです。{}を使用してロジックを明確にし、完全なコードブロックであり、間違いを犯しにくいことを示してください。そうしないと、コンパイルが失敗したり、出力結果が間違ったりする可能性があります。例:
(1)コンパイルが失敗する
//エラー、コンパイルが失敗する
int main()
{
if (a > 10)
i++;
j++;//error,编译不通过
else
j++;
return 0;
}
//すべての{}を含む推奨される記述
int main()
{
if (a > 10)
{
i++;
j++
}
else
{
j++;
}
return 0;
}
(2)ダングリングelseの問題
//すべてを追加するのではなく、ダングリングelseがあります
int main()
{
int a = 0;
int b = 2;
if (1 == a)
if (2 == b)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
出力:
//推奨される書き込み、すべてを追加{}
int main()
{
int a = 0;
int b = 2;
if (1 == a)
{
if (2 == b)
{
printf("hehe\n");
}
}
else
{
printf("haha\n");
}
return 0;
}
出力:4。
マルチブランチifステートメントの例:
int main()
{
int age = 0;
scanf("%d", &age);
if (age<18)
{
printf("少年\n");
}
else if (age >= 18 && age<30)
{
printf("青年\n");
}
else if (age >= 30 && age<50)
{
printf("中年\n");
}
else if (age >= 50 && age<80)
{
printf("老年\n");
}
else
{
printf("长命百岁\n");
}
system("pause");
return 0;
}
2.1.2ぶら下がり他
#include <stdio.h>
int main()
{
int a = 1;
int b = 2;
if(a == 1)
if(b == 2)
printf("hehe\n");
else//悬空else
printf("haha\n");
return 0;
}
输出:hehe
注:
1。ここにあるelseは、ぶら下がっているelseです。
2. if elseステートメントがネストされている場合、elseは最も近いifに一致する最も近い原則を採用します。
3.コードを書くときは、{}を持ってきて、他にぶら下がりが発生しないようにしてください。これにより、出力結果が正しくなくなる可能性があります。例については、2.1.1(2)ぶら下がりelseの問題を参照してください。
2.2switchステートメントと注意が必要な事項
2.2.1文法構造
//switch语句是C语言中经典多分支语句
switch (整型表达式)
{
case 常量表达式1:
语句;
case 常量表达式2:
语句;
...
case 常量表达式n:
default:
语句;
}
説明:
1。switchステートメントは一致ジャンプです。ケースには判定機能のみがあり、分岐機能はありません。
ケースが一致する場合、一致した位置から開始して実行される位置にジャンプし
ます。caseステートメントは後で分岐できます。ブレークが追加されます。
1.整数式には、int、char、long long、short型、int a = 10; a> 10;(1 + 2);式などが含まれます。
2. 97、「7」などの定数式。
2.2.2switchステートメントの中断
役割:switchステートメントのbreakステートメントは分岐を実現できます。
例:
(1)休憩なし
switch (3)
{
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");
}
出力:
(2)休憩があります
switch (3)
{
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;
}
出力:
(3)需要の変化
int main()
{
int day = 3;
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("weekday\n");
break;
case 6:
case 7:
printf("weekday\n");
break;
}
}
出力:
2.2.3デフォルトステートメント
機能:式の値が大文字と小文字が一致しない場合、デフォルトのステートメントが実行されます。
説明:
1。デフォルトのステートメントは、caseステートメントが表示される任意の場所に表示できます。
2. switch後の式の値が大文字と小文字が一致しない場合、defaultステートメントが実行され、switchステートメントに表示できるデフォルトは1つだけです。
3. defaultステートメントは省略できますが、プログラミングの良い習慣として、caseステートメントにdefaultを追加し、その後にbreakを追加することができます。
デフォルトの位置の例について:
(1)最後に
int main()
{
switch ('r')
{
case 'w':
printf("工作日\n");
break;
case 'r':
printf("休息日\n");
break;
case's':
printf("加班日\n");
default:
printf("输入有误\n");
break;
}
return 0;
}
出力:
(2)真ん中
//一致する文の前
int main()
{
switch ('r')
{
case 'w':
printf("工作日\n");
break;
default:
printf("输入有误\n");
break;
case 'r':
printf("休息日\n");
break;
case's':
printf("加班日\n");
}
return 0;
}
出力:
//マッチングステートメントの後
int main()
{
switch ('r')
{
case 'w':
printf("工作日\n");
break;
case 'r':
printf("休息日\n");
break;
default:
printf("输入有误\n");
break;
case's':
printf("加班日\n");
}
return 0;
}
出力:
// caseステートメントに一致しません
int main()
{
switch ('N')
{
case 'w':
printf("工作日\n");
break;
default:
printf("输入有误\n");
break;
case 'r':
printf("休息日\n");
break;
case's':
printf("加班日\n");
}
return 0;
}
出力:
2.2.4switchステートメントのネスト
例:(結果を出力してみることができます)
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:
m++;
case 2:
n++;
case 3:
switch (n)
{
case 1:
n++;
case 2:
m++;
n++;
break;
}
case 4:
m++;
break;
default:
break;
}
printf("m = %d, n = %d\n", m, n);
return 0;
}
出力:
説明:
1。switchステートメントはネストされた使用をサポートします。
2.現在のセットが使用されている場合、switchステートメントのブレークは最も近いswitchステートメントからジャンプします。
3.コードブロック
1. {}はコードブロックです。
2.コードブロックで定義された変数は一時変数と呼ばれ、関数も{}で囲まれているため、関数もコードブロックです。
3.コードで定義されているすべての変数はローカル変数と呼ばれ、このコードブロックでのみ有効です。
(1)エラー
int main()
{
int flag = 6;
if (6 == flag)
{
int x = 10;
}
printf("%d\n", x);
return 0;
}
出力:
(2)コンパイルに合格
int main()
{
int flag = 6;
if (6 == flag)
{
int x = 10;
printf("%d\n", x);
}
int x = 20;
printf("%d\n", x);
return 0;
}
出力:
最後に、ご覧いただき
ありがとうございます~~
記事の内容に問題がありましたら訂正してください!
一緒に来てください!