[零基础学软件开发11]选择结构if语句介绍之4

声明:我写这一系列文章在讲述过程中可能用了一些大白话,也可能有的地方墨迹了一些,但旨在把一些没有基础但很想学软件开发的一些人领进门来,另外该文章我同时也在百度经验发表。

多分支选择结构就是在 if 和 else 之间多了若干 else if ,你可以把 else if 理解成否则如果的意思。

还是用我们学过的知识来对比学习新知识吧。

例题是这样的,从键盘输入一个成绩,成绩在90~100之间输出优秀,成绩在80~89之间输出良好,成绩在60~79之间输出及格,成绩在0~59之间输出不及格,成绩不在0~100之间则给出提示

多个if语句实现如下:

void main()

{

  int a;//存储成绩

  printf("请输入你的成绩:");

  scanf("%d",&a);

  if(a>=90&&a<=100)

  {

    printf("优秀\n");

  }

  if(a>=80&&a<90)

  {

   printf("良好\n");

  }

  if(a>=60&&a<80)

  {

   printf("及格\n");

  }

  if(a>=0&&a<60)

  {

   printf("不及格\n");

  }

  if(a<0||a>100)

  {

   printf("成绩应在0~100之间\n");

  }

}

这样写可以实现上面的问题,但他们并不是一个if语句实现的,当一个成绩是优秀后,程序还会判断它是不是良好,接着判断是不是几个,再判断是不是不及格还要判断是不是0~100之间,增加了没必要的判断次数,我们写的if条件也有一些啰嗦,好的逻辑是对于这种有多种情况,但只需要选择一种的时候,应该是程序成功走了一条通路后,下面的通路就不用再判断了也不用走了。下面请看多分支版本:

void main()

{

  int a;//存储成绩

  printf("请输入你的成绩:");

  scanf("%d",&a);

   if(a<0||a>100)

  {

   printf("成绩应在0~100之间\n");

  }

  else if(a>=90)

  {

    printf("优秀\n");

  }

  else if(a>=80)

  {

   printf("良好\n");

  }

  else if(a>=60)

  {

   printf("及格\n");

  }

  else

  {

   printf("不及格\n");

  }

}

首先你还是要明确这是一条if语句。

假如a的值为120时满足if里的条件,输出成绩应在0~100之间,程序执行了这条通路后if语句就结束了,所以下面的else if里的条件程序压根就不会去判断当然else也不会执行。

假如a的值是95时不满足if里的条件,那程序往下走,满足第一个else if 里的条件输出优秀,此时if语句结束,后面的条件就不再判断了else也不执行。这里的条件之所以没写a<=100是因为程序如果能执行到这的话那a肯定是0~100之间的,要是大于100的话那if里的条件就成立了就不会执行到这个else if。

当if和所有的else if里的条件都不满足时才会执行else里的内容。

多分支其实很简单就是向if语句里添加else if ,只不过多分支的条件你需要好好组织一下看看怎么写的更简洁,这需要你多练习一些题目来提高。

值得强调的是多分支结构里的else是对它之前的所有else if 里的条件 和 if里的条件的否定。

在多分支结构里你也可以不加else ,也就是说只有if 和若干个 else if也是可以的。

例如

if(a==1) 

{

 printf("星期一\n");

}

else if(a==2)

{

 printf("星期二\n");

}

else if(a==3) 

{

 printf("星期三\n");

}

printf("hello\n");

当a=4时这条if语句的三个通路都不通,不会输出星期几,但hello还是会输出的因为printf("hello\n");这句不在if语句作用范围内。

下节我们来学习if语句的嵌套使用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值