多语言展示
当前在线:693今日阅读:84今日分享:32

c语言入门:[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语句的嵌套使用。
推荐信息