C语言基础语法第二节--分支与循环(二)


首先,向大家致歉,最近博主有些事情,导致这个栏目断更了。但是,之后我将加快步伐,加速更新这个栏目。不知可否给博主点赞加关注呢。好了,我们言归正传,直接开始今天的学习。

switch语句的介绍

上一节中,我们学习了 if 语句,其实在C语言中,还提供了 switch 语句来实现分支结构。
switch语句其实是一种特殊形式的if…else 结构,主要用于判断条件有多个结果的情况。它把多重的 else if 改成更易用,可读性更好的形式。
下面是switch的语法形式:

switch (expression) {
case value1 : statement;
case value2 : statement;
default: statement;
}

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

  • switch 后的 expression 必须是整形表达式
  • case 后的值,必须是整形常量表达式
  • case 和后边的数字之间必须有空格
  • 每一个 case 语句中的代码执行完成后,需要加上,break,才能跳出 switch 语句

switch语句中的break

switch 语句也是分支效果的,只有在 switch 语句中使用 break 才能跳出 switch 语句,如果某一个 case 语句的后边没有 break 语句,代码就会继续往下执行,有可能执行其他 case 语句中的代码,知道遇到 break 语句或者 switch 语句结束。
所以在 switch 语句中 break 语句是非常重要的,能实现真正的分支效果。
但是,break 也不是每个 case 语句中都得有,这就得根据实际情况来看了。比如下面这道例题。
例题:输入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;
}

在这道例题中,我们发现我们应该要根据实际的情况,来在代码中合理使用break,这样才能合适的完成实际的需求。

switch语句中的default

在使用switch语句的时候,我们不可避免的遇到这样的一种情况:在switch后的表达式无法匹配case语句的状况,这是我们就得在switch语句中加入default字句。

switch(expression){
    case value1: statement;
    case value2: statement;
    default: statement;
}

default的作用就是如果switch后边的expression的结果既不是value1,也不是value2,就会执行default字句。

上面的那道例题中,如果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("输入错误\n");
		break;
	}
	return 0;
}

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

现在我问大家一个问题:在switch语句中case字句和default字句的顺序有要求吗?default是只能放在最后吗?

答:。其实在switch语句中case语句和default语句中是没有顺序要求的,是要你的顺序是满足实际的需求就可以。不过我们通常习惯吧default字句放在以后处理的

好了,现在我们已经学完了分支语句,下一步是更新循环语句。如果这篇博客对你有帮助,请给博主一个小小的赞,谢谢大家。我们下节课见,再见。

拜拜

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值