if语句在C语言中是常用且重要的语句,下面来记录一下if语句的一些用法和注意事项
1.if 和else默认都只控制一条语句
比如下面的代码
输入为15,执行的结果应该为未成年,然而实际两句话都打印了,这是因为if语句都只能控制一条语句,则是printf("未成年,......")
printf("成年了,......")是独立存在的,不管if语句的条件真假都会执行。如果想用if语句控制多条语句,要用{}将代码括起来。
2.else可以 与另一个if连用,构成多重判断。
-
int main() { int i = 0; scanf("%d", &i); if (i>0&&i <= 18) { printf("未成年,不能恋爱\n"); } if (i > 18) { printf("成年了!"); printf("可以交女朋友了\n"); } else { printf("输入错误!"); } return 0; }
3.if的嵌套 4.悬空else的问题 else总是跟最接近的if匹配。下面代码示例
int main() { int a = 0; int b = 5; int c = 9; if (a == 1) if (b == 5) printf("haha\n"); else printf("lala\n"); return 0; }
很多人会认为这段代码的执行结果是lala,其实不是,正确的格式是这样的
int main() { int a = 0; int b = 5; int c = 9; if (a == 1) if (b == 5) printf("haha\n"); else printf("lala\n"); return 0; }
正确答案是,什么都不输出。如果想要避免这类问题,最好的办法是日常中代码格式规范。也可以在第一个if后面加{},这样阅读代码时会容易看出来