分支语句(选择结构)

一、if语句

(1)语法结构

单分支:1、 if(表达式)

                         语句; 

1表示如果表达式为真则执行语句,否则什么也不执行。

             2、if(表达式)

                   语句1;

                  else

                   语句2;

2表示如果表达式为真则执行语句一,如果表达式为假则执行语句2.

多分支:if(表达式1)

                      语句1;

              else if(表达式2)

                       语句2;

              ............ 

              else   语句n;

注意:使用if语句时,判断变量是否落在某个数值范围内,不能写成10<a<20,而应该使用&&或者||

分支语句(选择结构)

解释18<a<50可以看成(18<a)<50,a=51时,18<a为真就是1,原语句就成1<50了,所以走的是else if语句

(2)if语句处理两条或多条语句时要引入花括号

复合语句是由一对花括号,以及花括号内生命和语句混合而成

分支语句(选择结构)

(3)else悬空问题

C语言遵循的规则是else与离它最近且未匹配的if相匹配

分支语句(选择结构)分支语句(选择结构)

无论与哪个if对齐,else都与第二个if进行匹配,结果无法输出值。解决方法就是加上括号将else与第一个if进行匹配

分支语句(选择结构)

二、switch语句

(1)语法结构 switch(表达式)

                         {case 整型常量表达式:语句

                          case 整型常量表达式:语句

                          .............

                          case 整型常量表达式:语句

                          default:语句}

●控制表达式。switch 后边必须跟着由圆括号括起来的整型表达式。C语言把字符当成整数来处理,因此在switch语句中可以对字符进行判定。但是,这不适用于浮点数和字符串

●分支标号。每个分支的开头都有一一个标号,格式:case 常量表达式:

● 常量表达式很像普通的表达式,只是不能包含变量和函数调用。因此,5是常量表达式,5+10也是常量表达式,但n+10不是常量表达式(除非n是表示常量的宏)。分支标号中常量表达式的值必须是整数(字符也可以)。

●语句。每个分支标号的后边可以跟任意数量的语句,并且不需要用花括号把这些语句括)起来。)每组语句的最后一条通常是break语句

(break语句会导致程序”跳出“switch语句,继续执行switch语句之后的语句。但是也不是全部都必须加break)

分支语句(选择结构)

C语言不允许有重复的分支标号,但对分支的顺序没有要求,特别是default分支不一定要放置在最后。

case后边只可以跟随一个常量表达式

理解switch语句

分支语句(选择结构)

最后输出m=5,n=3(当执行到case3是n=2,此时就跳过了第二个switch中的case1,执行case2)

发表评论

相关文章