Switch语句的用法(包含例题)

C语言中除了if语句还可以使用Switch语句来实现分支结构。

那么什么是Switch语句呢  ?怎么使用Switch语句?

Switch语句其实是一种特殊的if else结构,适用于判断条件存在多个结果的情况。

它把多重else if改为更清晰 可读性更好的形式。

Switch语句的基本形式如下:

switch(expression)
{
   case value1:statement
       break:
   case value2:statement
       break:
   case value3:statement
       break:
   default:statement

}

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

注意:

  1. Switch后面的expression必须是整形表达式。
  2. case后面的value是一个数值 必须为整形常量表达式。
  3. case 后面要接空格再接常量 并且常量后面不是逗号是冒号。
  4. 每一个case语句中的代码执行完成之后,需要加上一个break,才能跳出Switch语句。
  5. statement是声明 可以是printf语句等等。
  6. default语句是为了弥补case分支没有涉及到的情况时作为其他情况的补充, default语句并不是必不可少,但是有的话会使代码更加完善和严谨 。default和case语句没有顺序要求 通常默认default放在最后。

现在我写一个代码 计算除3之后的余数分别用if语句和Switch语句来实现。

int main()
{
  int n = 0;
  scanf("%d",&n);
  if(n%3 == 0)
     pritnf("余数为0\n");
  else if(n%3 == 1)
     pritnf("余数为1\n");
  else if(n%3 == 2)
     pritnf("余数为2\n");
  return 0;
}
int main()
{

   int n = 0;
   scanf("%d",&n);
   switch(n%3)
 {
  case 0;printf("余数是0\n");
      break;
  case 1;printf("余数是1\n");
      break;
  case 2;printf("余数是2\n");
      break;
 }
   
   return 0;
}

两种代码对比起来 是不是Switch语句更加清晰 可读性更好

你是否注意到上面Switch语句后面为(n%3)   n是字符型,这跟上面说的Switch后面的expression必须是整形表达式相冲突,这里解释一下,字符类型是归类到整形家族里的 字符的本质为ASCII码值 这个值为整数。

下面通过几个例子来了解Switch语句的使用

例题一  
输入1-7的数字,打印对应的星期几

int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
		printf("今天是星期一\n");
		break;
	case 2:
		printf("今天是星期二\n");
		break;
	case 3:
		printf("今天是星期三\n");
		break;
	case 4:
		printf("今天是星期四\n");
		break;
	case 5:
		printf("今天是星期五\n");
		break;
	case 6:
		printf("今天是星期六\n");
		break;
	case 7:
		printf("今天是星期天\n");
		break;
	}

	return 0;
}
例题二
星期一到星期五输出工作日 星期六星期天输入休息日
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;

}

你们有没有发现上面这个例子 无论输入的day是12345任意一个 输出的结果都是工作日 

碰到这种情况我们就可以删除多余的printf语句和break 使得代码更加清晰简洁 

以上就是对Switch语句的简单介绍和注意事项 喜欢的朋友记得点赞评论收藏哦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值