循环语句(switch 语句)

1、switch 定义

  switch 语句是一种特殊形式的 if······else 结构,用于判断条件有多个结果的情况。

2、switch 用法

1 switch (expression){
2   case value1: statement
3   case value2: statement 
4   default:statement
5  }

上面的代码中,根据表达式expression不同的值,执行相应的case分支。如果找不到相应的值,就执行default分支。

注意:

· switch 后的expression 必须是整型表达式

· case 后的值,必须是整型常量表达式

   //switch(ch)可以
   char ch = 'w';
   scanf("%c",&ch);
   switch (ch)

   //switch(f) 不可以
    float f = 0.0;
    scanf("%f",&f);
    switch (f)

在语法归类,字符以ASCII码的形式存储的,ASCII值是整数,字符属于整型家族

3、if 语句与 switch 语句的对比

练习:输入任意整数值,计算除3之后的余数

如果使用 if 语句

#include <stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num % 3 == 0)
		printf("%d是整数,余数为0", num);
	else if(num % 3 == 1)
		printf("%d不是整数,余数为1", num);
	else
		printf("%d不是整数,余数为2", num);
	return 0;
}

如果使用 switch 语句

#include <stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	switch (num % 3) 
	{
	     case 0:
			printf("%d是整数,余数为0", num);
			break;
		 case 1:
			 printf("%d不是整数,余数为1", num);
			 break;
		 case 2:
			 printf("%d不是整数,余数为2", num);
			 break;
	}
	return 0;
}

注意:

(1)case 和后面的数字之间必须有空格

(2)每个case 语句结束后,需要加上break ,才能跳出这个switch 语句。如果没有break语句,代码会继续执行下去,有可能执行其他代码,直到遇见break 语句或者switch 语句结束。当然,break 也不是每个 case 语句都得有,这就要看具体情况了。

例如:

输入1~7的数字,要求:

输入1~5,输出的是“工作日”

输入6~7,输出的是“休息日”

#include <stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("休息日\n");
		break;
	}
		return 0;
}

4.switch 语句中的 default

在使用switch 语句的时候,如果switch 后的表达式中的值无法匹配代码中的case 语句的时候,就要在 switch 语句中加入 defaule 子句

default 用法

1 switch (expression)
  {
2   case value1: statement
3   case value2: statement
4   default: statement
  }

switch 后面的expression的结果既不是value1 也不是 value2的时候,就会执行defaule 子句

例如前面的的代码练习,如果day的输入不是1~7的值,提示:输入错误,就可以这样完成代码

#include <stdio.h>
int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日\n");
		break;
	case 6:
	case 7:
		printf("休息日\n");
		break;
	default:
		printf("输入错误");
		break;
	}
	return 0;
}

5、switch 语句中的 case 和 default 的顺序问题

在switch 语句中 case 语句和 default 语句是没有顺序要求的,只要顺序满足实际要求就可以,不过我们通常是把 default 子句放在最后处理。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值