if的用法及常见问题

if的用法

1、if简单的用法
1)if
格式:

if  (表达式)
	语句A;
	语句B;
功能:
	如果表达式为真,执行语句A和语句B;
	如果表达式为假,只执行语句B;
由此可见if只能控制一个语句的执行与不执行,如果想要控制多个语句就必须把这些语句用{}括起来。
  1. if…else if…else
    格式:
if1)
		语句A;
	else if2)
		语句B;
	else
		语句C;

常见问题

1、空语句的问题

if3 > 2;  //这是一个空语句
等价于
if3 > 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");
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值