c++switch文の使用(caseの後ろにN文を付けることができます)

2805 ワード

switch文は、マルチブランチ文を処理する際に明確な構造(一連のif else if...)であり、
一般書での説明では、次のような一般的な形式が与えられます.
switch(   ){ 
    case      1:    1;
    case      2:    2;
    … 
    case      n:    n;
    default:    n+1;
}

switch後の括弧の中
は式で、この式が返す値(通常は多値)に基づいて、対応する文を実行します.これは次のとおりです.
case文が行うことは,caseがif判断に相当し,定数式nとはswitchの後の式の値である.
このswitch文の一般的な形式を見ると、私たちはいつも一連の疑問を生みます.
(1)switch文は実際の応用で一般的にどのように使われていますか.、
(2)caseの後ろにはいくつかの文がありますか.
次の2つの質問に答えます.
(1)実際にはcase文ごとにbreakを付けてswitch文を飛び出し、break式を書かなければ
では、プログラムは下に実行され続け、次のcaseを判断し、時間を無駄にします.もちろんこの特徴を利用していくつかの問題を処理することもできます.
開発が最もよく彼らに言ったように、「これは特性で、BUGではありません!」最後にdefault文があってもなくてもいいので、具体的な選択は具体的な
状況.
(2)上の一般的な形式ではcase文の後に1つの文しか書かれていませんが、最初に勉強したときは特に疑問に思っていました.case後の文は
一つですか.私は多くの文がどのようにしますかがあって、私はcase文の中でif文がどのようにしますかがあって、実はこれらの心配はすべて必要ありませんて、caseで
文の后ろにN多文があって、これらの文の书き込みは正常なロジックの下で区别がなくて、あなたは1つの関数の中でどのようにif文を书いて、ここでどのように
書きます.次に、switch文を示す具体的な例を示します.
switch(in_temp)
				{
					case 1:
						if (input_num == 0) 
						{
							i--;
						}else
						{
							i--;
	
							grade -= grade / 10;
							// if grade < 0 set grade = 0
							grade = grade > 0 ? grade : 0;
							if (input_num > number)
							{
								printf("Bigger than number
",input_num); }else { printf("Smaller than number
",input_num); } } break; case 2: i--; grade -= (grade / 10); grade = grade > 0 ? grade : 0; // is even number if (input_num % 2 == 0) { printf("Not prim
"); }else { printf("Is prim
"); } break; case 3: i--; grade -= (grade / 10); grade = grade > 0 ? grade : 0; //test the Prim() function //number = 457; if (Prim(number)) { int leftn; int rightn; scanf("%d %d", &leftn, &rightn); // output the Prim in [leftn,rightn] for (int j = leftn; j <= rightn; ++j) { /* code */ if (Prim(j)) { printf("%d ", j); } } printf("
"); }else printf("Not
"); break; case 4: i--; grade -= (grade / 10); grade = grade > 0 ? grade : 0; // judge the number can divide by 3 if (number % 3 == 0) { /* code */ printf("can multi by 3
"); }else printf("can not multi by 3
"); break; default: break; } }

上記の例から,switch文の応用を明確に見た.
また、switch(val)のパラメータvalは、C++ではINT以下のパラメータタイプ(char shortなど)しか取れません.
stringという複雑なデータ型はサポートされていないと思います.
読んでくれてありがとう!