文章目录

  • 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语言中分支相关内容知识