if语句
if语句是指编程语言(包括c语言,C#,VB,java,汇编语言等)中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。
1、语句概述
if语句是指编程语言(包括c语言,C#,,java,VB,汇编语言等)中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。if的返回值为真或假,可以用bool型变量进行存储,占用一字节。
2、C语言中
三种形式
c语言提供了三种形式的if语句:
1、if(表达式)语句。
例如:
1 |
|
2、if(表达式)语句1else语句2
例如:
1 2 |
|
3、if(表达式1)语句1
elseif(表达式2)语句2
elseif(表达式3)语句3
elseif(表达式m)语句m
else语句n
在每个语句中,可以有多个语句,但需要加上大括号
例:
1 |
|
3、空悬else
问题描述
if-else语句引入了一种二义性问题称为空悬else(dangling-else)问题,这种问题出现在当if子句多于else子句时。问题是这些else子句分别和哪一个if子句匹配。例如
1 2 3 4 5 6 7 8 |
|
程序的缩进形式表明程序员相信else应该与最外面的if子句匹配,然而在C++中空悬else二义性由以下规定来解决:else子句与最后出现的未被匹配的if子句相匹配。
在本例中if-else语句实际的计算过程如下
1 2 3 4 5 6 7 8 9 10 11 |
|
解决方式
要想改变这种缺省的空悬else匹配效果一种方法是把后来出现的if放在复合语句中
1 2 3 4 5 6 7 8 9 10 |
|
编码风格建议
总是使用复合语句括号以避免在以后修改代码时可能出现的混淆或错误。
4、C#中
作用
if语句根据布尔表达式的结果选择执行两个不同的代码块。
语法
if语句的语法如下所示(if和else是C#的关键字):
if(booleanExpression)
statement-1;
else
statement-2;
如果booleanExpression(布尔表达式)求值为true,就运行statement-1;否则运行statement-2。else关键字和后续的statement-2是可选的。如果没有else子句,而且booleanExpression求值为false,那么什么也不会发生,程序继续执行if语句之后的代码。注意,布尔表达式必须放在圆括号中,否则无法编译。
推荐阅读