C/C++语法Switch语句

时间:2025-03-25 10:46:16

一、语法形式 

语法形式如下:

switch(整形表达式)
{
    case 整形常量表达式:
        语句;
    case 整形常量表达式:
        语句;
    case 整形常量表达式:
        语句;
}

 还有另一种语法形式:

#include <iostream>
using namespace std;
int main()
{
  int day;
  cin>>day;
  switch(day){
  	case 1:
  	case 2:
  	case 3:{
  		//输入内容 
		break;
	  }
  return 0;
}

这个形式和第一种其实没什么差别,只是case 1和case 2里面的语句块是空而已,所以这时无论你输入1,2,3,都会进入case 3的语句块执行。 

二、注意事项

1.每一个case后面都要跟一个空格然后再跟整形表达式,这是初学者很容易犯的错误,一定要注意。

2.每一条case语句后跟一个冒号,而后的语句块如果大于等于两条,可以用花括号。

后面只能跟整形表达式,不能跟其他类型的内容或变量,因此他的用法会有一定限制,大家在使用Switch语句时不无脑使用。

4.每一个case语句进去后,出来需要break语句,否则程序可能会出现一些奇奇怪怪的问题

三、举例

 下面这串代码是正确的,作用是输出一个数字,输出星期几,在后面再给大家看一下如果没有在乎上面“注意事项”里面第四条的话会造成什么结果。

#include <iostream>
using namespace std;
int main()
{
  	int day;
  	cin>>day;
  	switch(day){
  	case 1:{
  		printf("星期一");
		break;
	  	}
	case 2:{
  		printf("星期二");
		break;
	  	}
	case 3:{
  		printf("星期三");
		break;
	  	}
	case 4:{
  		printf("星期四");
		break;
	  	}
	case 5:{
  		printf("星期五");
		break;
	  	}
	case 6:{
  		printf("星期六");
		break;
	  	}
	case 7:{
  		printf("星期七");
		break;
	  	}
  }
  return 0;
}

 给大家看没有break语句的话会有什么结果,先看代码:

#include <iostream>
using namespace std;
int main()
{
  int day;
  cin>>day;
  switch(day){
  	case 1:
  		printf("星期一");
  	case 2:
  		printf("星期二");
  	case 3:
  		printf("星期三");
  	case 4:
  		printf("星期四");
	case 5:
  		printf("星期五");
  	case 6:
  		printf("星期六");
  	case 7:
  		printf("星期七");
  }
  return 0;
}

 输入输出结果:

5
星期五星期六星期七

 以上就是我对该部分内容的理解,希望对你有所帮助,可以私信交流,共同进步。