鱼C论坛

 找回密码
 立即注册
查看: 2944|回复: 4

[已解决]else if 全改成if有问题吗;

[复制链接]
发表于 2022-10-24 16:12:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include<stdio.h>
  2. int main()
  3. {
  4.                 float a,total;
  5.                 scanf("%f",&a);
  6.                 if(a<=110) total=0.5*a;//改成全部if语句
  7.                 else if(a<=210&&a>110) total=0.5*110+(a-110)*0.55;
  8.                 else if(a>210) total=0.5*110+0.55*100+(a-210)*0.7;
  9.                 printf("%.2f",total);
  10.                 return 0;
  11. }
复制代码

将所有的else if改为if对结果没影响;else if有什么用,为什么不直接写if???
最佳答案
2022-10-24 16:36:05
本帖最后由 jackz007 于 2022-10-24 16:40 编辑

        if、if、if 和 if 、else if、else if 的区别是,前者是三个独立的判断,不具有排它性,而后者是一个整体,只要满足了其中的一个条件分支,就不会再测试其它的条件分支。
        就本例而言,三个分支的条件本身是闭合且排它的,所以,使用 3 个 if 与使用 1 个 if 2 个 else if 没有任何区别。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-24 16:16:30 | 显示全部楼层
本帖最后由 两手空空儿 于 2022-10-24 16:19 编辑

else 是表示除去前面if里的【所有】情况,上面的程序还可以如下写:

  1. #include<stdio.h>
  2. int main()
  3. {
  4.                 float a,total;
  5.                 scanf("%f",&a);
  6.                 if(a<=110)
  7.                          total=0.5*a;
  8.                 else if(a<=210)
  9.                         total=0.5*110+(a-110)*0.55;
  10.                 else
  11.                          total=0.5*110+0.55*100+(a-210)*0.7;
  12.                 printf("%.2f",total);
  13.                 return 0;
  14. }
复制代码


在else里再加if,又把条件限制的很精确的时候,不用else也没问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-24 16:18:34 | 显示全部楼层
在这个代码里确实改成if没啥问题

但是else if 更有逻辑性一点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-24 16:21:28 | 显示全部楼层
用else if 减少逻辑运算次数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-24 16:36:05 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2022-10-24 16:40 编辑

        if、if、if 和 if 、else if、else if 的区别是,前者是三个独立的判断,不具有排它性,而后者是一个整体,只要满足了其中的一个条件分支,就不会再测试其它的条件分支。
        就本例而言,三个分支的条件本身是闭合且排它的,所以,使用 3 个 if 与使用 1 个 if 2 个 else if 没有任何区别。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-23 07:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表