C语言中关于分支与循环的那些小知识------switch语句

分支与循环之—switch语句


目录

  • 分支与循环之---switch语句
  • 前言
  • 什么是`switch`语句
    • 1.switch语句形式
    • 2.`switch`语句中的`break`
    • 3.switch语句中的default


前言

上篇文章介绍了分支与循环中的if语句,那么我们开始介绍选择结构里的另一个语句------switch语句。


什么是switch语句

switch语句是一种特殊的if......else......结构,用于判断多个结果的条件。它把if......else......结构中多重的else if,改成了更方便,可读性更高的形式。

1.switch语句形式

代码如下(示例):

1 switch (exp) {
2   case val1: statement
3   case val2: statement
4   default: statement
5 }

上⾯代码中,根据表达式 exp 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值,就执⾏ default 分⽀。

注意:
1、switch 后的 exp 必须是整型表达式
2、 case 后的值,必须是整形常量表达式

2.switch语句中的break

代码如下(示例):

#include 
//输入数字来计算除以5的余数是多少,并打印出来
int main()
{
	int i = 0;
	printf("请输入要计算的数字:");
	scanf("%d", &i);
	switch (i % 5) {
	case 0:
		printf("整除了\n");
		break;
	case 1:
		printf("余数是 1 \n");
		break;
	case 2:
		printf("余数是 2 \n");
		break;
	case 3:
		printf("余数是 3 \n");
		break;
	case 4:
		printf("余数是 4 \n");
		break;
	}
	return 0;
}

上面代码使用了break,只有使用了break,case语句执行完之后才能跳出switch语句,如果某一个case后面没有使用break那么代码将会一直执行下去直到遇到break,或者执行到switch语句结束。
这里注意:
case与后面的数字之间必须有空格。
所以breakswitch语句中非常重要,可以实现真正的分支效果。
当然也不是所有case后面都要有break,还是得根据实际情况来判断。

3.switch语句中的default

如果在switch语句中,匹配不到合适的case语句时是不是就不能输出了呢?当然不是,这里就要用到default这个语句了。
示例:

1 switch (exp) {
2   case val1: statement
3   case val2: statement
4   default: statement
5 }

如果exp的结果既不是val1也不是val2是,就会执行default后面的代码。
例如:

//输入月份来判断春夏秋冬(3--5月春天)(6--8月夏天)(9--11月秋天)(12--2月冬天)
int main()
{
	int month = 0;
	printf("请输入月份:");
	scanf("%d", &month);
	switch (month) {
	case 1:
	case 2:
	case 12:
		printf("是冬天\n");
		break;
	case 3:
	case 4:
	case 5:
		printf("是春天\n");
		break;
	case 6:
	case 7:
	case 8:
		printf("是夏天\n");
		break;
	case 9:
	case 10:
	case 11:
		printf("是秋天\n");
		break;
	default:
		printf("输入错误\n");
	}
	return 0;
}

上面代码中如果我输入13,那么就会执行default后面这个句子。
补充一点:
当我们多个case要输出一样的句子时,可以按照我上面这样可以省略掉很多代码,也更容易读这个代码。

下期我们接着介绍循环结构!!

你可能感兴趣的:(c语言,算法,开发语言)