【C语言】分支语句——条件判断语句之if

目录

1.生活中的选择语句

2.if语句

(1)基础语法结构

1)单分支结构

2)多分支结构

(2)悬空else

(3)优质的if代码推荐

1.生活中的选择语句

        这就是日常生活中的选择语句,小明可以通过踏实写作业从而考高分,也可以偷偷打游戏最终导致不及格,这就是不同的选择。

[注:在C语言中,0表示假,非0表示真】

2.if语句

(1)基础语法结构

1)单分支结构

if (表达式)
{

    语句;

}
else
{

    语句;

}
 

测试一个数的奇偶性:

int main()
{
	int a = 0;
	scanf("%d", &a);
	if (a % 2 == 0)
	{
		printf("%d是偶数\n", a);
	}
	else
	{
		printf("%d是奇数\n", a);
	}
}

2)多分支结构

if (表达式1)
{
    语句1;
}
else if (表达式2)
{
    语句2;
}
else
{
    语句3;
}

测试一个人的课是否很多:

int main()
{
	int class = 0;
	scanf("%d", &class);
	if (class > 0 && class <= 3)
	{
		printf("课很少");
	}
	else if (class >= 4 && class < 7)
	{
		printf("课还行");
	}
	else if (class >= 7 && class < 10)
	{
		printf("课很多");
	}
	else
	{
		printf("忙成陀螺");
	}
	return 0;
}

(2)悬空else

下面这段代码会打印出什么呢?

int main()
{
	int m = 3;
	int n = 20;
	if (m == 3)
	{
		if (n == 19)
		{
			printf("%d-%d", m, n);
		}
	}
	else
	{
		printf("%d-%d", m, n);
	}
	return 0;
}

结果是什么都不打印

step1:因为m=3,所以进入第一个判断里

step2:但是n不等于19,所以m==3的判断里跳出来,且不进入else那里

那下面这段代码会打印出什么呢?

int main()
{
	int m = 3;
	int n = 20;
	if (m == 3)
		if (n == 19)
			printf("%d月%d日", m, n);
	else
		printf("%d-%d", m, n);
	return 0;
}

结果是3-20:

这里让我们难以进行判断原因是,并没有合适的{ },也没有对应的缩进。

else是和它离的最近的if匹配的。

也就是实际上这串代码是这样的:

int main()
{
	int m = 3;
	int n = 20;
	if (m == 3)
	{
		if (n == 19)
			printf("%d月%d日", m, n);
		else
			printf("%d-%d", m, n);
	}
		
	return 0;
}

(3)优质的if代码推荐

先进行两串代码的对比:

看似没有什么不同,只是在第三行 month 和 3 的位置有所颠倒

int main()
{
	int month = 0;
	if (month == 3)
	{
		printf("yes");
	}
	return 0;
}
int main()
{
	int month = 0;
	if (3 == month)
	{
		printf("yes");
	}
	return 0;
}

更推荐使用的是第二行代码:

因为在C语言中,‘’ = ‘’ 是赋值的符号,‘’ == ‘’才是判断

如果新手在初学时少打了一个等号,会改变代码的意思,陷入循环中去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值