c++ 关于 switch 判断语句

switch 语句

一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。

switch 语法

switch(expression){
    case constant-expression  :
       statement(s);
       break; // 可选的
    case constant-expression  :
       statement(s);
       break; // 可选的
  
    // 您可以有任意数量的 case 语句
    default : // 可选的
       statement(s);
}
  • 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句为止。
  • 当遇到 break 语句时,switch 终止,控制流将跳转到 switch 语句后的下一行。
  • 不是每一个 case 都需要包含 break。如果 case 语句不包含 break,控制流将会 继续后续的 case,直到遇到 break 为止。

实例

#include <bits/stdc++.h>
using namespace std;

int main()
{
    // 局部变量声明
	char ch = 'C';
	
	switch(ch)
	{
	case 'A':
		cout << "很好" << endl;
		break;
	case 'B':
		cout << "不错" << endl;
		break;
	case 'C':
		cout << "通过" << endl;
		break;
	case 'D':
		cout << "未通过" << endl;
		
	default :
		cout << "无效的成绩" << endl;
	}
    
    // 无论 switch 是否执行,该语句都会执行
	cout << "你的成绩是" << ch << endl;
	
	return 0;
}

以上代码执行后结果为

通过
你的成绩是:C

嵌套 switch 语句

您可以把一个 switch 作为一个外部 switch 的语句序列的一部分,即可以在一个 switch 语句内使用另一个 switch 语句。

即使内部和部 switch 的 case 常量包含共同的值,也没有矛盾。

C++ 中的 switch 语句允许至少 256 个嵌套层次。

嵌套 switch 语法

switch(ch1) {
   case 'A': 
      cout << "这个 A 是外部 switch 的一部分";
      switch(ch2) {
         case 'A':
            cout << "这个 A 是内部 switch 的一部分";
            break;
         case 'B': // 内部 B case 代码
      }
      break;
   case 'B': // 外部 B case 代码
}

实例

#include <bits/stdc++.h>
using namespace std;

int main()
{
    // 局部变量声明
	int a = 1;
	int b = 2;
	
	switch(a)
	{
		case 1:
			cout << "这是外部 switch 的部分" << endl;
		switch(b)
		{
			case 2:
				cout << "这是内部 switch 的部分" << endl;
		}
	}
    // 无论 switch语句 是否执行,该语句都会执行
	cout << "a 的值为" << a << endl;
	cout << "b 的值为" << b << endl;
	
	return 0;
}

以上代码执行后结果为

这是外部 switch 的部分
这是内部 switch 的部分
a 的值为1
b 的值为2

posted @ 2021-03-05 13:44  春暖花开鸟  阅读(562)  评论(0编辑  收藏  举报