if-else-if语句和多个并列的if语句的区别

       对于if-else-if语句和多个并列的if语句的区别,我就拿实例来给大家看看吧。

例题:输入三个数a,b,c,按要求由小到大的顺序输出?

解析:我们假设a,b,c,已经是由小到大的顺序排列的,我们需要将这三个数每2个比较一下大小关系。

如果a>b  则将a和b的位置互换

如果a>c  则将a和c的位置互换

如果b>c  则将b和c的位置互换

其中要注意的是,当2个变量互换值的时候,我们需要找一个中间变量来进行交换,就好比我们要将2个瓶子里面的水互换,我们还需要另外一个空瓶子3,先将一个瓶子1里面的水倒进空瓶子3,再将瓶子2里面的水倒进瓶子1里面,瓶子3里面的水倒进瓶子2,这样就完成了互换。

解答:首先我们用if-else-if的形式

#include <stdio.h>

void main()
{
	int a, b, c, temp;
	printf("请输入三个整数:\n");
	scanf_s("%d,%d,%d", &a, &b, &c);
	if (a > b)
	{
		temp = a;
		a = b;
		b = temp;
	}
	else if (a > c)
	{
		temp = a;
		a = c;
		c = temp;
	}
	else if (b > c)
	{
		temp = b;
		b = c;
		c = temp;
	}
	printf("%d<%d<%d\n", a, b, c);
}

 当我们输入4,7,9时,程序输出的结果是正确的

可是当我们输入7,9,3时,程序却出现了错误。

 这是为什么呢?我们再试试多个if语句并列的形式

#include <stdio.h>

void main()
{
	int a, b, c, temp;
	printf("请输入三个整数:\n");
	scanf_s("%d,%d,%d", &a, &b, &c);
	if (a > b)
	{
		temp = a;
		a = b;
		b = temp;
	}
	if (a > c)
	{
		temp = a;
		a = c;
		c = temp;
	}
	if (b > c)
	{
		temp = b;
		b = c;
		c = temp;
	}
	printf("%d<%d<%d\n", a, b, c);
}

 这时候我们再输入7,9,3时,程序的结果是正确的。

这就要谈到他们的区别了,首先并列的多个if语句,程序是会将每个if语句都进行判断,只有为真才会执行if语句后面的语句块,当为假时,就会去执行下一个if语句进行判断,直到所有的if语句都判断完。而if-else-if,就不是并列的关系了,它在一定情况下是不会将整个if语句都进行判断了,当满足一个if语句判断为真,那么它执行完if语句后面的语句块,就会不再执行后面的else-if语句了。所以在输入7,9,3时,a>b不满足,就会执行else后面的if语句进行判断,此时a>c是满足的,就会将a和c的值交换,交换后并不会去执行else后面的if语句进行判断了,b和c的值就无法比较了,因为只有前面一个if语句判断为假才会执行else后面的if语句,继续进行判断,而并列的if语句就不同,都会将所有if语句进行判断一遍。

例题:写一个程序完成以下功能:

1、输入一个分数score

2、score<60      输出F

3、score>=60或者score<70     输出D

4、score>=70或者score<80     输出C

5、score>=80或者score<90     输出B

6、score>=90或者score<=100     输出A

#include <stdio.h>

void main()
{
	int score;
	printf("请输入你的分数:");
	scanf_s("%d", &score);
	if (score < 60)
	{
		printf("你的成绩等级是F!\n");
	}
	else if (score >= 60 && score < 70)
	{
		printf("你的成绩等级是D!\n");
	}
	else if (score >= 70 && score < 80)
	{
		printf("你的成绩等级是C\n");
	}
	else if (score >= 80 && score < 90)
	{
		printf("你的成绩等级是B\n");
	}
	else if (score >= 90 && score <= 100)
	{
		printf("你的成绩等级是A\n");
	}
}

所以,我们要注意一下这2个的区别及用法。本文章是看完哔哩哔哩的C语言教程视频后写下的一个笔记,其视频链接为https://www.bilibili.com/video/av2831981/?p=12。要是觉得文章不错,就给小编点个赞吧!要是有什么不正确的地方,请在下方给我评论,小编一定虚心请教。

 

  • 30
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在C语言中,if-else语句可以嵌套使用,也可以并列使用。并列使用if-else语句可以让程序更加简洁明了,同时也可以提高代码的可读性。在并列使用if-else语句时,可以使用多个if-else语句,也可以使用if-else if-else语句。 下面是一个使用多个if-else语句的示例代码: ``` #include <stdio.h> int main() { int score = 85; if (score >= 90) { printf("优秀\n"); } if (score >= 80 && score < 90) { printf("良好\n"); } if (score >= 70 && score < 80) { printf("中等\n"); } if (score >= 60 && score < 70) { printf("及格\n"); } if (score < 60) { printf("不及格\n"); } return 0; } ``` 上面的代码中,使用了多个if-else语句来判断学生的成绩等级。如果成绩大于等于90分,则输出“优秀”,如果成绩在80分到90分之间,则输出“良好”,以此类推。 下面是一个使用if-else if-else语句的示例代码: ``` #include <stdio.h> int main() { int score = 85; if (score >= 90) { printf("优秀\n"); } else if (score >= 80) { printf("良好\n"); } else if (score >= 70) { printf("中等\n"); } else if (score >= 60) { printf("及格\n"); } else { printf("不及格\n"); } return 0; } ``` 上面的代码中,使用了if-else if-else语句来判断学生的成绩等级。如果成绩大于等于90分,则输出“优秀”,如果成绩在80分到90分之间,则输出“良好”,以此类推。与多个if-else语句不同的是,使用if-else if-else语句可以避免多次判断,提高程序的效率。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值