没有梦想的人生是苍白的人生,把白日梦当成梦想的人生则是愚蠢的人生。
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。