一、if…else if…else结构
格式:
if(表达式1)语句1;
else if(表达式2)语句2;
else if(表达式3)语句3;
……
else if(表达式m)语句m;
else 语句n;
流程图:
If-else语句中,else语句有嵌套了if语句。每个else与其最相近的未被匹配的if匹配。
如例子:
这两个程序是等价的,写成上面的if…else if…else if…else形式更为直观和简洁。
二、if语句中嵌套if-else结构
这种形式如下:
在if语句中又包含一个或多个if语句,构成if语句嵌套。
例有一阶跃函数:
编一程序,输入一个x值,要求输出相应的y值。
算法思路:分段函数,不同x不同的y的计算值。这便要用选择结构。
程序:
二、switch多分支选择结构
if是双分支选择结构,switch为多分支选择结构,其格式如下:
说明:
- 括号内的“表达式”,其值的类型应为整数类型(包括字符型)。
- case后面跟一个常量(或常量表达式)。 执行switch语句时,先计算switch后面的“表达式”的值,然后将它与各case标号比较,如果与某一个case标号中的常量相同,流程就转到此case标号后面的语句。如果没有与switch表达式相匹配的case常量,流程转去执行default标号后面的语句。
- 可以没有default标号,此时如果没有与switch表达式相匹配的case常量,则不执行任何语句。
- 各个case标号出现次序不影响执行结果。
- 每一个case常量必须互不相同;否则就会出现互相矛盾的现象。
- 一般情况下,在执行一个case子句后,应当用break语句使流程跳出switch结构。最后一个case子句(今为default子句)中可不加break语句。
- 多个case标号可以共用一组执行语句。
例:要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为60~69分,D等为 60分以下。成绩的等级由键盘输入。
用swich分支结构编程如下: