C笔记6——流程控制(顺序+选择)

mac2024-10-31  19

没有梦想的人生是苍白的人生,把白日梦当成梦想的人生则是愚蠢的人生。

if的常见问题解析

1:空语句问题

# include <stdio.h> int main(void) { if( 3 > 2 ) ; //等价于 if ( 3 > 2 ) ; //这是一个空语句 return 0; }

举例子:

# include <stdio.h> int main(void) { if ( 1 > 2 ) ; //我们都知道1大于2是不可能的情况,请注意此行分号 printf("AAAA,"); printf("BBBB"); return 0; }

输出结果:AAAA,BBBB 程序也不会报错,为什么呢?因为程序执行的时候,会在分号 ; 那里认为是一个空语句。 也就是说,如果if成立,那么执行空语句。 2:if常见错误解析(重点)

# include <stdio.h> int main(void) { if ( 3 > 2 ) ; printf("哈哈!\n"); else printf("嘿嘿!\n"); return 0; }

上面这个程序是错误的,为什么呢?在该程序中,总的有4个语句。 而在以else开头的那个语句是有错误的,因为在C语言中是没有以else开头的这种语法。

# include <stdio.h> int main(void) { if ( 3 > 2 ) printf("AAAA\n"); else if ( 3 > 1 ) printf("BBBB\n"); else printf("CCCC\n"); return 0; }

在上面这个程序中,最终的值是AAAA,虽说后面的3>1也满足条件,但是当3>2满足条件后,该if语句就会终止,后面的语句是不会在执行的.

既然7行要写表达式,就要写if。

最新回复(0)