1.1 分支语句
1.1.1 考点1:条件语句
条件语句根据判定条件的真假决定执行哪一种操作,有四种结构:if结构、if-else结构、if-else-if结构、嵌套使用的条件结构。
1.if结构
Java语言中,最简单的条件语句是if结构,采用如下格式:
if(条件) statement;
或者
if(条件){block}
第一种情况下,在条件为真时,执行一条语句statement;否则跳过statement执行下面的语句。第二种情况下,在条件为真时,执行多语句组成的代码块block;否则跳过block执行下面的语句。上述格式中的“条件”为关系表达式或布尔逻辑表达式,其值为布尔值。
2.if-else结构
Java语言中,较常见的条件语句是if-else结构。采用如下格式:
if(条件)
statement1;或{block1}
else
statement2;或{block2}
在条件为真时,执行语句statement(或代码块1),然后跳过else和statement2(或代码块2)执行下面的语句;在条件为假时,跳过语句statement1(或代码块block1)执行else后面的statment2(或代码块2),然后继续执行下面的语句。
注意:else子句不能单独作为语句使用,它必须和if子句配对使用。
3.if-else if结构
当需要处理多个分支时,可以使用if-else if结构。采用如下格式:
if(条件1)
statement1;或{block1}
else if(条件2)
statement2;或{block2}
…
else if(条件n)
statementn;或{blockn}
[else
statementn+1;或{blockn+1}]
其中else是可选的,else总是与离它最近的if配对使用。
4.嵌套使用的条件结构
以上三种条件结构中,根据实际需要,在每一个代码块{block}中都可以嵌入另外的条件语句结构。这种情况使得程序结构比较混乱,使用时要特别注意if和else的搭配。
例7.1.1 给出下面程序段
if(x>0)
{
System.out.println(" Hello. ");
}
else
if(x>-3)
{
System.out.println("Nice to meet you! ");
}
Else
{
System.out.println("How are you? ");
}
若打印字符串"How are you? ",则x的取值范围是( )。
A.x>0 B.x>-3 C.x<=-3 D.x<=0&x>-3
答案:C
1.1.2 考点2:多分支语句
多分支语句switch根据表达式的值从多个分支中选择一个来执行,它的一般格式为:
switch(expression){
case value1: statement1;
break;
case value2:statement2;
break;
…
case valuen:statementn;
break;
[default:defaultStatement;]
}
对switch语句的说明如下:
(1)表达式expression只能返回这几种类型的值:int、short和char。多分支语句把表达式返回的值依次与每个case子句中的值相比较。如果遇到匹配的值,则执行该case子句后的语句序列。
(2)case子句中的值value1~valuen必须是常量,而且所有子句的值应是不同的。
(3)default子句是任选的。当表达式的值与任一case子句中的值都不匹配时,程序执行default后面的语句;如果表达式的值与任一case子句的值都不匹配且没有default子句,则程序不做任何操作,而是直接跳出switch语句。
(4)break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。因为case子句只是起到一个标号的作用,用来查找匹配的入口并从此处开始执行。如果没有break语句,当程序执行完匹配的case语句序列后,后面的case子句起不到跳出switch语句的作用,这样,程序还会继续执行后面的case语句序列,一般说来这是不允许的,除非编程人员有自己独特的考虑。因此,应该在每个case分支后,用break语句终止后面的case分支语句序列的执行。在一些特殊情况下,多个相邻的case分支执行一组相同的操作。为了简化程序的编写,相同的程序段只需出现一次,即出现在最后一个case分支中。这是为了保证这组case分支都能执行正确的操作,只在这组case分支的最后一个case分支后加break语句,组中其他case分支则不使用break语句。
(5)case分支中包含多条语句(即statement1为一连串语句序列)时,可以不用大括号{}括起。
(6)switch语句的功能可以用if-else if结构来实现,但在某些情况下,使用switch语句更简练,可读性强,而且程序的执行效率也得到提高。
与if-else if结构相比,switch语句在数据类型上受到了限制,即只能使用int,byte,short型。
例1.1.2 在switch(expression)语句中,expression的数据类型不能是( )。
A.double B.char C.byte D.short
答案:A