关于 If 语句
if 语句用于有条件地执行一条语句或语句块,有三种基本形式。第一种形式(if)用于在表达式为真时执行一条语句,否则不执行任何操作。第二种形式(if/else)用于根据表达式是否为真执行两条独立语句之一。最后一种形式(if/else if/else)本质上将一系列条件链接在一起,以确定应执行语句集合中的哪一条语句。
| 条件 | 语句 |
|---|---|
| if | 第一种 if 语句的格式为 ``` if( expression ) |
statement 例如, if(x>0) |
|
y=sqrt(x); 此语句首先计算表达式 x>0。如果此表达式为 **true**,则执行语句 y=sqrt(x);。如果表达式 x>0 为 **false**,则 **if** 语句不执行任何操作。注意,语句 y=sqrt(x); 以分号结尾。所有语句必须以分号结尾,除非该语句是语句块,如下例所示: if(x>0) { |
|
| y=sqrt(x); | |
| z=x/(1+x); | |
| } ``` 语句块中的每条语句都以分号结尾。但是,块本身除了右大括号外不包含任何终止标点。在可以插入语句的任何位置,都可以插入语句块。 | |
| if/else | 第二种 if 语句的格式为 ``` if( expression ) |
| statement1 | |
| else | |
statement2 例如, if(x>0) |
|
| y=sqrt(x); | |
| else | |
y=0; 此语句的第一部分行为与前一示例完全相同。也就是说,语句首先计算表达式 x>0。如果此表达式为 **true**,则执行语句 y=sqrt(x);。但是,如果表达式为 **false**,则执行语句 y=0;。与前一形式的 **if** 语句一样,每个条件语句都可以是语句块。例如, if(x>0) { |
|
| y=sqrt(x); | |
| z=x/(1+x); | |
| } | |
| else { | |
| y=0; | |
| z=0; | |
| } ``` | |
| if/else if/else | 最后一种 if 语句的格式为 ``` if( expression1 ) |
| statement1 | |
| else if( expression2 ) | |
| statement2 | |
| . . . | |
| else | |
statement3 完整语句中可以有任意数量的 else if 部分。此外,最后的 else 是可选的。例如, if(x>0) |
|
| y=sqrt(x); | |
| else if(x==0) | |
| y=-1; | |
| else | |
| y=0; ``` 此语句首先计算表达式 x>0。如果为真,则执行语句 y=sqrt(x);。如果表达式为假,则计算表达式 x==0。如果此表达式为真,则执行语句 y=-1;。最后,如果所有条件表达式都不为真,则执行最后一条语句 y=0;。 | |
| IF 原语 | 可以使用 IF 原语而不是 if 语句来创建条件。语句 ``` if( expression ) |
statement 等同于 IF( expression, statement ) 此外,语句 if( expression ) |
|
| statement1 | |
| else | |
statement2 等同于 IF( expression, statement1, statement2 ) 注意,使用 **IF** 原语时单词 *IF* 为大写字母,而使用 **if** 语句时为小写字符。例如,语句 if(x>0) |
|
| y=sqrt(x); | |
| else | |
y=0; 等同于 IF(x>0,y=sqrt(x),y=0); 使用 **IF** 原语,可以通过将 y= 移到 **IF** 前面来进一步简化此表达式: y=IF(x>0,sqrt(x),0); ``` |