目录
一个 if 语句 由一个布尔表达式后跟一个或多个语句组成
C 语言中 if 语句的语法:
- if(boolean_expression)
- {
- /* 如果布尔表达式为真将执行的语句 */
- }
如果布尔表达式为 true,则 if 语句内的代码块将被执行。如果布尔表达式为 false,则 if 语句结束后的第一组代码(闭括号后)将被执行
C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false

示例 test15.c
- #include
-
- int main ()
- {
- // 定义局部变量
- int a = 10;
-
- // 使用 if 语句检查布尔条件
- if( a < 20 )
- {
- // 如果条件为true,则输出下面的语句
- printf("a 小于 20\n" );
- }
- printf("a 的值是 %d\n", a);
-
- return 0;
- }
运行效果:

一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为 false 时执行
C 语言中 if...else 语句的语法:
- if(boolean_expression)
- {
- /* 如果布尔表达式为真将执行的语句 */
- }
- else
- {
- /* 如果布尔表达式为假将执行的语句 */
- }
如果布尔表达式为 true,则执行 if 块内的代码。如果布尔表达式为 false,则执行 else 块内的代码

示例 test16.c
- #include
-
- int main ()
- {
- // 局部变量定义
- int a = 50;
-
- // 检查布尔条件
- if( a < 20 )
- {
- // 如果条件为true,则输出下面的语句
- printf("a 小于 20\n" );
- }
- else
- {
- // 如果条件为false,则输出下面的语句
- printf("a 大于 20\n" );
- }
- printf("a 的值是 %d\n", a);
-
- return 0;
- }
运行效果:

if else 语句也可以多个同时使用,构成多个分支,形式如下:
- if (条件表达式一)
- {
- 语句块一
- }
- else if (条件表达式二)
- {
- 语句块二
- }
- else if (条件表达式三)
- {
- 语句块三
- }
- else if (条件表达式n)
- {
- 语句块n
- }
- else
- {
- 全部的条件都不符时执行此语句块x
- }
- 意思是,从上到下依次检测判断条件,当某个判断条件成立时,则执行其对应的语句块,然后跳出整个 if else 语句之外继续执行其他代码。如果所有判断条件都不成立,则执行语句块x
- 也就是说,一旦遇到能够成立的判断条件,则不再执行其他的语句块,所以最终只能有一个语句块被执行
- 一个 if 后可跟零个或一个 else,else 必须在所有 else if 之后
- 一个 if 后可跟零个或多个 else if,else if 必须在 else 之前
- 一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被测试
示例 test17.c
- #include
-
- int main ()
- {
- // 局部变量定义
- int a = 50;
-
- // 检查布尔条件
- if( a == 10 )
- {
- // 如果 if 条件为true,则输出下面的语句
- printf("a 的值是 10\n" );
- }
- else if( a == 20 )
- {
- // 如果 else if 条件为true,则输出下面的语句
- printf("a 的值是 20\n" );
- }
- else if( a == 30 )
- {
- // 如果 else if 条件为true,则输出下面的语句
- printf("a 的值是 30\n" );
- }
- else
- {
- // 如果上面条件都不为true,则输出下面的语句
- printf("没有匹配的值\n" );
- }
- printf("a 的准确值是 %d\n", a );
-
- return 0;
- }
运行效果:

嵌套 if-else 语句是合法的,这意味着您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句
C 语言中 嵌套 if 语句的语法:
- if( boolean_expression 1)
- {
- /* 当布尔表达式 1 为真时执行 */
- if(boolean_expression 2)
- {
- /* 当布尔表达式 2 为真时执行 */
- }
- }
您可以嵌套 else if...else,方式与嵌套 if 语句相似
示例 test18.c
- #include
-
- int main ()
- {
- // 局部变量定义
- int a = 100;
- int b = 200;
-
- // 检查布尔条件
- if( a == 100 )
- {
- // 如果条件为true,则检查下面的条件
- if( b == 200 )
- {
- // 如果条件为true,则输出下面的语句
- printf("a 的值是 100,且 b 的值是 200\n" );
- }
- }
- printf("a 的准确值是 %d\n", a );
- printf("b 的准确值是 %d\n", b );
-
- return 0;
- }
运行效果:

if 语句嵌套时,要注意 if 和 else 的配对问题,C语言规定,else 总是与它前面最近的 if 配对。一定要保持良好的编程习惯,空格、缩进、对齐,{}成对的书写等,不良的代码习惯会把自己搞晕