目录
一、if语句的基本形式
1. if语句形式
2. if…else语句形式
3. else if语句形式
二、if的嵌套形式
三、条件运算符
四、switch语句
1. switch语句的基本形式
2. 多路开关模式的switch语句
一、if语句的基本形式
在if语句中,首先判断表达式的值,然后根据该值的情况控制程序流程。表达式的值不等于0,也就是为真;否则,就是假值。if语句有if、if…else和else if 3种形式
1. if语句形式
if语句通过对表达式进行判断,根据判断的结果决定是否进行相应的操作。if语句的一般形式如下:
其执行流程图:
if后面括号中的表达式就是要进行判断的条件,后面的语句部分则是对应的操作。如果if判断括号中的表达式为真,就执行后面语句的操作;如果为假值,那么不会执行后面的语句部分。例如
代码中判断变量iNum的值,如果变量iNum为真值,则执行后面的输入语句;如果变量的值为假,则不执行后面的语句。
在if语句的括号中,不仅可以判断一个变量的值是否为真,也可以判断一个表达式的值是否为真,例如:
这行代码的含义是:判断变量iSignal==1的表达式,如果条件成立,那么判断的结果是真值,则执行后面的输出语句;如果条件不成立,那么结果为假值,则不执行后面的输出语句。
上述示例代码中,if后面的执行部分只是一条语句。如果有两条语句,又该怎么办呢?这时可以使用大括号,使之成为语句块。例如:
将执行的语句都放在大括号中,这样当if语句判断条件为真时,语句块内的内容将会全部被执行。
2. if…else语句形式
除了可以指定在条件为真时执行某些语句外,还可以在条件为假时执行另外一段代码。
这在C语言中是利用else语句来完成的,其一般形式如下:
其语句的执行流程图:
在if后的括号中判断表达式的结果,如果判断的结果为真值,则执行紧跟if后的语句块中的内容;如果判断的结果为假值,则执行else语句后的语句块内容。也就是说,当if语句检验的条件为假时,就执行相应的else语句后面的语句或者语句块。例如:
在上面的代码中,如果if判断变量value的值为真,则执行if后面的语句块。如果if判断的结果为假值,则执行else下面的语句块。
注意:一个else语句必须跟在一个if语句的后面。
3. else if语句形式
利用if和else关键字的组合可以实现else if语句,这是对一系列互斥的条件进行检验,其一般形式如下:
其语句的执行流程图:
根据流程图可知,首先对if语句中的表达式1进行判断,如果结果为真值,则执行后面跟着的语句1,然后跳过else if语句和else语句,如果结果为假,那么判断else if语句中的表达式2,如果表达式2为真值,那么执行语句2而不会执行后面else if的判断或者else语句。当所有的判断都不成立,也就是都为假值时,执行else后的语句块。例如:
上述代码的含义是:使用if语句判断变量iSelection的值是否为1,如果为1,则执行后面语句块中的内容,然后跳过后面的else if判断和else语句的执行;如果iSelection的值不为1,那么else if判断iSelection的值是否为2,如果值为2,则条件为真,执行后面紧跟着的语句块,执行完后跳过后面else if和else的操作;如果iSelection的值也不为2,那么接下来的else if语句判断iSelection是否等于数值3,如果等于,则执行后面语句块中的内容,否则执行else语句块中的内容。也就是说,当前面所有的判断都不成立(为假值)时,才执行else语句块中的内容。
二、if的嵌套形式
if语句中又包含一个或多个if语句,此种情况称为if语句的嵌套。一般形式如下:
示例:如果为星期六,就陪朋友逛街;如果为星期日,就陪家人在家。外面的else语句表示不为休息日时的相应操作
注意:在使用if语句嵌套时,应注意if与else的配对情况。else总是与其上面的最近的未配对的if进行配对。
三、条件运算符
在使用if语句时,可以通过判断表达式为“真”或“假”,从而执行相应的表达式。例如:
上面的代码可以用条件运算符“?:”来进行简化,例如:
条件运算符可对一个表达式的值的真假情况进行检验,然后根据检验结果返回另外两个表达式中的一个。条件运算符的一般形式如下:
在运算中,首先对第一个表达式的值进行检验。如果值为真,则返回第二个表达式的结果值;如果值为假,则返回第3个表达式的结果值。例如,上面使用条件运算符的代码,首先判断表达式a>b是否成立,成立则说明结果为真,否则为假。当为真时,将a的值赋给max变量;如果为假,则将b的值赋给max变量。
四、switch语句
1. switch语句的基本形式
switch语句是多分支选择语句。例如,如果只需要检验某一个整型变量的可能取值,那么可以用更简便的switch语句。switch语句的一般形式如下:
switch语句的执行流程图:
注意:switch语句检验的条件必须是一个整型表达式,这意味着其中也可以包含运算符和函数调用。而case语句检验的值必须是整型常量,即常量表达式或者常量运算。
示例:
其中switch判断selection变量的值,利用case语句检验selection值的不同情况。假设selection的值为2,那么执行case为2时的情况,执行后跳出switch语句。如果selection的值不是case中所检验列出的情况,那么执行default中的语句。在每一个case或default语句后都有一个break关键字。break语句用于跳出switch结构,不再执行switch下面的代码。
注意1:在使用switch语句时,如果没有一个case语句后面的值能匹配switch语句的条件,就执行default语句后面的代码。其中,任意两个case语句都不能使用相同的常量值;每个switch结构只能有一个default语句,而且default可以省略。
注意2:在case语句表示的条件后有一个冒号“:”
2. 多路开关模式的switch语句
将break去掉之后,会将符合检验条件后的所有语句都输出。利用这个特点,可以设计多路开关模式的switch语句,其形式如下:
通过上述可以得到,如果在case 2后不使用break语句,那么符合检验时与符合case 3检验时的效果是一样的。也就是说,使用多路开关模式使得多种检验条件使用一种解决方式。