设为首页 加入收藏

TOP

二级JAVA第四章辅导:流程控制分支语句
2014-11-19 19:17:47 】 浏览:3390
Tags:二级 JAVA 第四章 辅导 流程 控制 分支 语句

§4.1分支语句


分支语句提供了一种控制机制,使得程序的执行可以跳过这些语句不执行,而转去执行特定的语句。


4.1.1条件语句if-else.


if-else语句根据判定条件的真假来执行两种操作中的一种,格式为:


if(boolean-expression)
statement1;
[else
statement2;]


1.布尔表达式boolean-expression是任意一个返回布尔型数据的达式(这比C、C++的限制要严格)。


2.每个单一的语句后都必须有分号。


3.语句statement1,statement2可以为复合语句,这时要用大括号{}括起。建议对单一的语句也用大括号括起,这样程序的可读性强,而且有利于程序的扩充(可以在其中填加新的语句)。{}外面不加分号。


4.else子句是任选的。


5.若布尔表达式的值为true,则程序执行statement1,否则执行statement2。


6.if-else语句的一种特殊形式为:


if(expression1){
statement1
}else if(expression2){
statement2
}......
}else if(expressionM){
statementM
}else{
statementN
}


else子句不能单独作为语句使用,它必须和if配对使用。else总是与离它最近的if配对。可以通过使用大括号{}来改变配对关系。


7.举例:


例4.1比较两个数的大小,并按从小到大的次序输出。


public class CompareTwo{
public static void main(Stringargs[]){
double d1=23.4;
double d2=35.1;
if(d2>=d1)
System.out.println(d2+">="+d1);
else
System.out.println(d1+">="+d2);
} }


运行结果为:


C:\>java CompareTwo
35.1>=23.4


例4.2判断某一年是否为闰年。


闰年的条件是符合下面二者之一:①能被4整除,但不能被100整除;②能被4整除,又能被100整除。


public class LeapYear{
public static void main(String args[]){
int year=1989;//method1
if((year%4==0&&year%100!=0)||(year%400==0))
System.out.println(year+"isaleapyear.");
else
System.out.println(year+"isnotaleapyear.");
year=2000;//method2
boolean leap;
if(year%4!=0)
leap=false;
else if(year%100!=0)
leap=true;
else if(year%400!=0)
leap=false;
else
leap=true;
if(leap==true)
System.out.println(year+"isaleapyear.");
else
System.out.println(year+"isnotaleapyear.");
year=2050;//method3
if(year%4==0){
if(year%100==0){
if(year%400==0)
leap=true;
else
leap=false;
}else
leap=false;
}else
leap=false;
if(leap==true)
System.out.println(year+" is a leap year.");
else
System.out.println(year+" is not a leap year.");
}
}


运行结果为


C:\>java LeapYear


1989 is not a leap year.
2000 is a leap year.
2050 is not a leap year.


该例中,方法1用一个逻辑表达式包含了所有的闰年条件,方法2使用了if-else语句的特殊形式,方法3则通过使用大括号{}对if-else进行匹配来实现闰年的判断。大家可以根据程序来对比这三种方法,体会其中的联系和区别,在不同的场合选用适当的方法。


4.1.2多分支语句switch


switch语句根据表达式的值来执行多个操作中的一个,它的般格式如下:


switch (expression){
case value1:statement1;
break;
case value2:statement2;
break;
…………
case valueN:statemendN;
break;
[default:defaultStatement;]
}


1.表达式expression可以返回任一简单类型的值(如整型、实型、字符型),多分支语句把表达式返回的值与每个case子句中的值相比。如果匹配成功,则执行该case子句后的语句序列。


2.case子句中的值valueI必须是常量,而且所有case子句中的值是不同的。


3.default子句是任选的。当表达式的值与任一case子句中的 都不匹配时,程序执行default后面的语句。如果表达式的值与任一case子句中的值都不 配且没有default子句,则程序不作任何操作,而是直接跳出switch语句。


4.break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行。因为case子句只是起到一个标号的作用,用来查找匹配的入口并从此处开始执行,对后面的case子句不再进行匹配,而是直接执行其后的语句序列,因此该在每个case分支后,要用break来终止后面的case分支语句的执行。在一些特殊情况下,多个不同的case值要执行一组相同的操,这时可以不用break。


5.case分支中包括多个执行语句时,可以不用大括号{}括起。


6.switch语句的功能可以用if-else来实现,但在某些情况下,使switch语句更简炼,可读性强,而且程序的执行效率提高。


7.举例:


例4.3.根据考试成绩的等级打印出百分制分数段。


public class GradeLevel{
public static void main(String args[]){
System.out.println("\n**firstsituation**");
char grade='C';//normaluse
switch(grade){
case 'A':System.out.println(grade+" is 85~100");
break; case 'B':System.out.println(grade+" is 70~84");
break; case 'C':System.out.println(grade+" is 60~69");
break; case 'D':System.out.println(grade+" is <60");


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇二级JAVA第四章辅导:流程控制循.. 下一篇二级JAVA第四章流程控制辅导汇总

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目