#C 言語での switch case の使用法の詳細な説明
switch は「スイッチ」を意味し、「」でもあります。 Choice" " ステートメントですが、その使用法は非常に簡単です。 switch は複数分岐の選択ステートメントです。簡単に言うと、複数の分岐は複数の if です。
推奨学習:
C 言語ビデオ チュートリアル
機能的に言えば、switch ステートメントと if ステートメントは相互に完全に置き換えることができます。しかし、プログラミングの観点から見ると、それぞれに独自の特性があるため、今のところ、一方が他方を完全に置き換えることができるとは言えません。
ネストされた if が比較的少ない場合 (3 つ以内)、if を使用してプログラムを作成する方が簡単になります。ただし、多くの分岐が選択されている場合、多くのレベルの if ステートメントがネストされ、プログラムが長くなり、可読性が低下します。したがって、C 言語には、複数の分岐選択を処理するための switch ステートメントが用意されています。したがって、if と switch は明確な分業と言えます。多くの大規模プロジェクトでは、複数のブランチを選択する状況が頻繁に発生するため、switch ステートメントは依然として頻繁に使用されます。
switch の一般的な形式は次のとおりです:
switch (表达式)
{
case 常量表达式1: 语句1
case 常量表达式2: 语句2
┇
case 常量表达式n: 语句n
default: 语句n+1
}
ログイン後にコピー
手順:
1) switch の後の括弧内の「式」は整数型である必要があります。つまり、int 型変数、char 型変数、または直接整数または文字定数、さらには負の数を指定することもできます。ただし、実数であってはなりません。Float 型変数、Double 型変数、および 10 進定数はすべて使用できません。これらはすべて構文エラーです。
2) スイッチの下のケースとデフォルトは、一対の中括弧 {} で囲む必要があります。
3) スイッチ後の括弧内の「式」の値が、case の後の「定数式」の値と等しい場合、case に続く文が実行されます。ケースに続くステートメントを実行した後、フロー制御は次のケースに移行して実行を継続します。この case ステートメントのみを実行し、他の case を実行したくない場合は、この case ステートメントの後に Break を追加して switch ステートメントから抜け出す必要があります。
繰り返しますが、switch は「選択」ステートメントであり、「ループ」ステートメントではありません。多くの初心者は、break を見たときに、break がループ ステートメントであると考えます。これは、break は一般に「ループ」から飛び出す印象を与えるためですが、break にはスイッチから飛び出すという別の用途があります。
4) すべての場合の定数式の値が、スイッチ後の括弧内の「式」の値と等しくない場合、デフォルトの後のステートメントが実行されます。デフォルトとは「デフォルト」を意味します。 」。デフォルトが最後のステートメントである場合、それが最後のステートメントであるため、switch は実行後に自然に終了するため、その後に Break を追加する必要はありません。
5) 各ケースの背後にある「定数式」の値は互いに異なっていなければなりません。そうしないと、相互に競合が発生し、この記述により文法エラーが発生します。
6) 「case 定数式」は文のラベルとしてのみ機能し、判定には使用されません。 switch ステートメントを実行すると、switch の背後にある式の値に基づいて一致するエントリ ラベルが検出され、それ以上の判断は行わずにこのラベルから実行が開始されます。
7) 各ケースの発生順序とデフォルトは実行結果に影響しません。ただし、読みやすさの観点からは、アルファベット順または数字順に書くのが最善です。
8) もちろん、if...else が最後に else ステートメントを必要としないのと同じように、デフォルトのステートメントを省略することもできます。ただし、追加するのが最善です。その後は何も書かなくても大丈夫です。これにより、他人がデフォルト処理を忘れたと誤解することを防ぎ、切り替えが完了したことを他人に知らせることができます。
ただし、default 以降は何も記述できませんが、その後に続くコロンとセミコロンは文法エラーとなるため省略できません。初心者の多くはここでセミコロンやコロンを忘れて間違いやすいので注意してください。
プログラムを書いて見てみましょう。
# include <stdio.h>
int main(void)
{
int val; //variable的缩写, “变量”的意思
printf("请输入您想去的楼层:");
scanf("%d", &val);
switch (val)
{
case 1:
printf("1层开!\n");
break;
case 2:
printf("2层开!\n");
break;
case 3:
printf("3层开!\n");
break;
default:
printf("该层不存在, 请重新输入\n");
}
return 0;
}
ログイン後にコピー
このプログラムの最後の「このレイヤーは存在しません。再入力してください」は機能しなくなりました。これは、ループ ステートメントを学習するときにループを使用して実装する必要があります。
以上がC言語でのswitch caseの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。