文章目录
- if语句
- 基本形式
- if else 语句
- if的嵌套
- switch语句
- 基本形式
- switch语句中的case和default的顺序问题
- switch中的break
在C语言中主要采用两种语句实现分支结构,分别为if语句和switch语句
if语句
基本形式
if语句的基本形式如下
if (表达式)语句;
表达式执行结果为真(非0),则执行语句,表达式结果为假(0)则不执行语句
if else 语句
在实际运用中常用的形式如下
if(表达式){语句一;语句二;}else{语句三;语句四;}
表达式为真执行语句一二,表达式为假则执行语句三四
注意,如果需要执行多条语句就需要加上大括号代表一个代码块,只执行一条语句时则可以不加
if的嵌套
在 if else 语句中,else 可以与另外一个 if 连用来构成多重判断,形式如下
if (表达式一)语句一;else if (表达式二)语句二;else语句三;
其中,表达式一为真则执行语句一,表达式一为假表达式二为真则执行语句二,而表达式一与表达式二都为假时则执行语句三
注意,不论几重嵌套,if else 语句都只执行其中的一条分支语句
switch语句
基本形式
switch 语句其实是一种特殊的 if else 语句,用来处理有多个结果的情况,其基本形式如下
switch(表达式){case value1:语句一;break;case value2:语句二;break;default:语句三;break;}
对于如上代码,表达式的值是什么就执行相应的 case 分支语句,而如果没有相匹配的值就执行 default 分支语句
注意
1.switch 后面的表达式必须是整型表达式
2.case 后面的值必须是整型常量表达式
3.单个字符也可看做是一个整型,如:
char a = 0;scanf("%c", &a);switch (a){case 'b':printf("haha\n");break;case 'c':printf("hehe\n");break;default:printf("输入有误!\n");break;
执行结果:
switch语句中的case和default的顺序问题
在switch语句中,各个case与default其实是没有顺序要求的,只要顺序满足实际需求就可以,不过我们习惯将default 放在最后处理
switch中的break
对于一个switch语句,我们还需要注意:
1.case和后边的数字之间必须有空格
2.每⼀个 case语句中的代码执⾏完成后,需要加上 break,才能跳出这个switch语句
那么,如果不加break会发生什么呢?例:
char a = 0;scanf("%c", &a);switch (a){case 'b':printf("haha\n");case 'c':printf("hehe\n");default:printf("输入有误!\n");break;
同样的代码,我们将前两个break去掉,观察结果如下:
发现,我们只输入了一个 ‘b’ ,但是将所有结果都打印了出来
其实,break 的作用就是跳出 switch 语句,在实际中我们如果仅需要’一一匹配’的情况下,那么就必须加上break以跳出语句
当然,可根据实际问题情况具体分析是否加break,有些问题场景可不加break,这里举一个例子:
//对于一个switch语句,要求输入 1-5 时表示工作日,6-7 时表示休息日#includeint 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");}return 0;}
部分结果如下:
以上即为C语言中分支相关内容知识