件表达式 条件表达式2) 条件表达式 语句2 语句 ; else if (条件表达式 条件表达式3) 条件表达式 语句3 语句 ; …… [ else 语句n 语句 ;]
3. if_else if框架
如果结果为真,则执行相应语句,直接执行if_else if框架的下一条 如果结果为真,则执行相应语句,直接执行 框架的下一条 语句; 语句; 如果结果为假,则继续往下计算相应的条件表达式, 如果结果为假,则继续往下计算相应的条件表达式,直到所有的条 式都不成立,则执行这个语句的最后部分else所对应的语句 或 所对应的语句,或 件表达 式都不成立,则执行这个语句的最后部分 所对应的语句 者如果没有else语句就什么也不做。 语句就什么也不做。 者如果没有 语句就什么也不做 例如: 例如: if (studentGrade>=90) Console.WriteLine ("成绩优秀 成绩优秀"); 成绩优秀 else if (studentGrade>=80) Console.WriteLine ("成绩良好 成绩良好"); 成绩良好 else if (studentGrade>=60) Console.WriteLine ("成绩及格 成绩及格"); 成绩及格 else Console.WriteLine ("成绩不及格 成绩不及格"); 成绩不及格
2.4.1 if语句 语句
4. 嵌套的 语句 嵌套的if语句 语句框架中, 在if语句框架中,无论条件表达式为真或为假将要执行的语句都 语句框架中 有可能又是一个if语句 这种if语句又包含 语句, 语句又包含if语句的结构就称之为嵌套 有可能又是一个 语句,这种 语句又包含 语句的结构就称之为嵌套 规定else语句与和它处于同一模块最 语句。 的if语句。为了避免二义性,C#规定 语句 为了避免二义性
, 规定 语句与和它处于同一模块最 近的if相匹配 例如: 相匹配。 近的 相匹配。例如:
(x > 0) 1 y = 0 (x = 0) 1 (x < 0) 下面是用嵌套的if语句写的程序片断 语句写的程序片断。 下面是用嵌套的 语句写的程序片断。
y=0; if (x>=0) if (x>0) y=1 ; else y=-1;
4. 嵌套的if语句
这个else是与最近的 匹配,那么 是与最近的if匹配 那么else的含义就是 的含义就是x=0的情况,所 的情况, 这个 是与最近的 匹配, 的含义就是 的情况 以这个
程序逻辑上是错的。如果按这个结构写,应修正为: 以这个程序逻辑上是错的。如果按这个结构写,应修正为: y=0; if (x>=0) { if (x>0) y=1 ; } else y=-1; 通过对嵌套的if语句加 语句加“ 最近的if语句屏蔽了 通过对嵌套的 语句加“{ }”,把离 ,把离else最近的 语句屏蔽了,这 最近的 语句屏蔽了, 就与if 匹配, 样else就与 (x>=0)匹配,从而正确地完成了这个函数的功能。 就与 匹配 从而正确地完成了这个函数的功能。
决策语句练习 从键盘输入一元二次方程的三个 系数a、 、 ,求方程的根。 系数 、b、c,求方程的根。考虑二 次项系数是否为零和判别式正负的问 题。
3.1.1 决策语句-编程练习 决策语句-
定义变量a,b,c,x1,x2,p; 定义变量 输入a,b,c的值; a!=0 真 求判别式p的值; p>=0 真 求x1,x2 并输出 假 输出“no real root!” 输出“这不是 一个二次方程!” 假
3.1.1 决策语句-编程练习 if(a!=0) 决策语句-
{ if(p>=0) { x1=(-b+Math.sqrt(p))/(2*a); ; x2= (-b-Math.sqrt(p))/(2*a); ; 输出两个根 } else { 提示没有根 } } else { 提示(“不是二次方程!”); 提示( 不是二次方程! }
2.4.2 switch语句 语句
switch语句是一个多分支结构的语句 它所实现功能与 语句是一个多分支结构的语句, 语句是一个多分支结构的语句 if_else if结构很相似 结构很相似 形式: 形式: switch (表达式 表达式) 表达式 { case 常量 : 常量1: 语句序列1; // 由零个或多个语句组成 语句序列 ; break;(一定要加的,不能省略) ; 一定要加的,不能省略) case 常量 : 常量2: 语句序列2; 语句序列 ; break ; ...... [ default: // default 是任选项,可以不出现 是任选项, : 语句序列n; 语句序列 ; break ;] }
2.4.2 switch语句 语句
C#的switch语句需要注意以下几点: 的 语句需要注意以下几点: 语句需要注意以下几