1、选 择 结 构,if 语句,if else语句,Switch语句,5.1 块作用域语句,块作用域语句又被称为复合语句,其格式为:用一对花括号将若干条语句括起来,目的是从语法上可以将多条语句解释成一条语句。,int temp;temp = a;a = b;b= temp;,例如:,5.1 块作用域语句,在Java语言中,块作用域语句可以嵌套,但不允许在嵌套的两层中声明同名的变量。例如,下列程序段就出现了这个错误,因此无法通过编译。,int c;.int c; / 重定义错误c = a;if (a b) c = b;,5.2 分支流程控制语句,实际程序设计过程中,更多的情况是需要根据某个条件是否成
2、立决定某些语句能否执行,或者从给定的两种或多种语句中选择其一来执行,这是选择结构程序设计解决的问题。,5.2 分支流程控制语句,选择结构的程序设计方法及Java语言提供实现选择结构if语句和switch语句的语法及使用方法。,1. if语句,if是分支流程控制语句中最简单的一种形式。其语法格式为:,1. if语句,if是分支流程控制语句中最简单的一种形式。其语法格式为:,1. if语句,if语句的执行过程是:首先计算“前提条件”,如果结果为true,执行“语句”;否则不执行任何操作。,IntegerAbs.java演示,例:求整数的绝对值。要求从键盘输入一个整数,计算并输出其绝对值。,2. i
3、f-else语句,if只是在“前提条件”成立时执行特定的语句;否则,不执行任何操作。,if-else语句将根据“前提条件”的判断结果分别执行不同的特定语句,其语法格式为:,2. if-else语句,if-else语句执行过程:先计算“前提条件”,如果结果为true,执行“语句1”;否则执行“语句2”。,例:判断整数的奇偶性,例如:,IntegerParity.java演示,. if语句的嵌套,实际程序设计时会碰到很多需要在多个分支中选择其一进行执行的问题。if或if-else语句的分支中可以是任意合法Java语句,当然也可以是其它if或if-else语句。,. if语句的嵌套,这种在if或if
4、-else的某个分支中嵌入其它if或if-else语句的形式称为if语句的嵌套。嵌入的if或if-else语句称为内层if语句,并且在内层if语句中还可以继续嵌入if或if-else语句,而且嵌套的层数是没有限制,称为多层嵌套。,. if语句的嵌套,if语句嵌套时else与if的匹配原则:,使用if语句嵌套时,在一段程序中会出现多个if和多个else。else分支是在某个if的判断条件不成立时执行,如何确定else与哪个if匹配是非常重要的。Java语言规定,else总是与其前面离其最近的同一语句块中的尚未匹配过的if进行匹配。,. if语句的嵌套,例:根据下面数学函数,编写程序输入x,计算并
5、输出y的值。,Symbol1.java演示,Symbol2.java演示,4. switch语句,switch语句是一种具有处理多分支能力的流程控制语句。它可以通过给定表达式的计算结果,从多个执行分支中选择执行其中的一个分支。其语法格式如下:,switch (表达式) case 值1:语句1; case 值2:语句2; default:语句n;,4. switch语句,switch语句的执行过程是:,首先计算“表达式”,然后用所得到的结果,按照从前往后的顺序与每个case后面的整型直接量或整型常量进行比较。,4. switch语句,switch语句的执行过程是:,首先计算“表达式”,然后用所得到的结果,按照从前往后的顺序与每个case后面的整型直接量或整型常量进行比较。,4. switch语句,switch语句的执行过程是:,首先计算“表达式”,然后用所得到的结果,按照从前往后的顺序与每个case后面的整型直接量或整型常量进行比较。,4. switch语句,switch语句的执行过程是:,首先计算“表达式”,然后用所得到的结果,按照从前往后的顺序与每个case后面的整型直接量或整型常量进行比较。,4. switch语句,例:根据考试成绩确定成绩的等级。输入一个考试成绩,合法的考试成绩应该是0到100的整数。,谢 谢 !,