if的用法
1、if简单的用法
1)if
格式:
if (表达式)
语句A;
语句B;
功能:
如果表达式为真,执行语句A和语句B;
如果表达式为假,只执行语句B;
由此可见if只能控制一个语句的执行与不执行,如果想要控制多个语句就必须把这些语句用{}括起来。
- if…else if…else
格式:
if (1)
语句A;
else if (2)
语句B;
else
语句C;
常见问题
1、空语句的问题
if(3 > 2); //这是一个空语句
等价于
if (3 > 2)
; //这是一个空语句
2、
if(表达式1);
A;
else
B;
这样写编译器会报错。这个段代码的意思是:
if(表达式1)
; // 分号后面是一个空语句。
表达式A;
else
表达式B;
这里的else必须以上一个语句的if,因为没有以else开头的语句,而不是与表达式A相对应。
这样写才是正确的:
if (表达式1)
A;
else
B; //else与
//if (表达式1)
// A;语句相对应!!
3、
if (表达式1)
A;
else if (表达式2)
B;
else if (表达式3)
C;
else
D;
即便是表达式1和表达式2同时成立,也只会执行A语句。
4、
if(表达式1)
A;
else if(表达式2)
B;
else if (表达式3)
C;
这样写不会出错,但逻辑上有漏洞。
5、
if (表达式1)
A;
else if (表达式2)
B;
else if (表达式3)
C;
else (表达式4) //第七行
D;
/*
这样写是不对的,正确的写法是:
要么去掉第七行的(表达式4);
要么在第七行的else后面加上if;
*/
6、
if(表达式1)
A;
else if (表达式2)
B;
else if (表达式3)
C;
else (表达式4);
D;
**这样写语法不会出错,但是逻辑上是错误的,因为:
else (表达式4);
D;
等价于
else
(表达式4);
D;
(表达式4);即便是(3 < 4 )这种关系表达式也会执行,
这行表示式无实际含义。D不管else是否成立也会执行D,因为D已经不属于if…else语句里面**
#include<stdio.h>
int main()
{
int i=4;
if (i > 0)
printf("有两个解\n");
// printf("*");
else if(i == 0)
printf("有唯一解\n");
// printf("&");
else
printf("无实数解\n");
return 0;
}
//输出结果为 有两个解 。
/*
else if 和 else前面一条代码必须和if里面的语句,否则就会报错 !!!
以下是错误示例:
if (i > 0)
printf("1");
printf("*");
else if(i == 0)
printf("2");
printf("&");
else
printf("3");
*/