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** first situation **");
char grade='C'; //normal use
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");
break;
default : System.out.println("input error");
}
System.out.println("\n** second situation **");
grade='A'; ∥creat error without break statement
switch( grade )
{
case 'A' : System.out.println(grade+" is 85~100");
case 'B' : System.out.println(grade+" is 70~84");
case 'C' : System.out.println(grade+" is 60~69");
case 'D' : System.out.println(grade+" is <60");
default : System.out.println("input error");
}
System.out.println("\n** third situation **");
grade='B'; ∥several case with same operation
switch( grade )
{
case 'A' :
case 'B' :
case 'C' : System.out.println(grade+" is >=60");
break;
case 'D' : System.out.println(grade+" is <60");
break;
default : System.out.println("input error");
}
}
}
运行结果为
C:\>java GradeLevel
**** first situation ****
C is 60~69
**** second situation ****
A is 85~100
A is 70~84
A is 60~69
A is <60
input error
**** third situation ****
B is >=60
从 该 例 中 我 们 可 以 看 到 break语 句 的 作 用 。
4.1.3 break语句
1.在 switch语中,break语句用来终止switch语句的执行。 使程序从switch语句后的第一个语句开始执行 。
2.在Java中,可以为每个代码块加一个括号,一个代码块通常是用大括号 {}括起来的一段代码。加标号的格式如下 :
BlockLabel: { codeBlock }
break语句的第二种使用情况就是跳出它所指定的块 ,并从紧跟该块的第一条语句处执 行 。 其格式为 :
break BlockLabel;
例如:
a:{…… //标记代码块a
b: {…… //标记代码块b
c: {…… //标记代码块c
break b;
…… //will not be executed
}
…… //will not be executed
}
…… /execute from here
}
3.与C、 C++不同,Java中没有goto语句来实现任意的跳转,因为 goto语句破坏程序的可读性 ,而且影响编译的优化 。 但是从上例可以看出 ,Java用break来实现goto语句所特有的一些优点。如果break后所指定的标号不是一个代码块的标号,而是一个语句,则这时break完全实现goto的功能。 不过应该避免这种方式的使用 。
4.1.4返回语句return
return语句从当前方法中退出,返回到调用该方法的语句处, 并从紧跟该语句的下一条语句继续程序的执行 。 (有 关 方 法 的 内 容 ,我 们 将在第六章详细讲述。 前面例子中的main( )就是一个方法 )。 返 回 语 句有两种格式 :
1.return expression
返回一个值给调用该方法的语句 ,返回值的数据类型必须和方法声明中的返回值类型一致。可以使用强制类型转换来使类型一 致 。
2.return
当方法说明中用void声明返回类型为空时 ,应使用这种格式 ,它不返回任何值 。
return 语句通常用在一个方法体的最后,以退出该方法并返回一个值 。 Java中单独的return语句用在一个 方 法 体的中间时,会产生编译错误,因为这时会有一些语句执行不到 。 但可以通过把 return语句嵌入某些语句 (如 if-else)来使程序在未执行完方法中的所有语句时退出。例如 :
int method (int num)
{
∥ return num; ∥will cause compile time error
if (num>0)
return num;
…… ∥ may or may not be executed
∥depending on the value of num
2017年计算机二级考试java流控制学习教程:多分支语句.doc正在阅读:
2017年计算机二级考试java流控制学习教程:多分支语句09-16
四川阿坝州2023年中考成绩10分段统计表(加授民族语言文字教学类)06-27
[一年级语文上册期中测试卷及答案]一年级语文上册期中测试卷人教版08-10
2020云南玉溪市儿童医院招募就业见习生公告【58人】12-04
2023下半年河北成人学士学位英语考试合格分数线公布09-02
2017年宁夏考研学习方式及渠道划分05-17
2017年国家公务员申论热点:“超级对撞机”引发更多中国科学对撞07-19
2020年云南监理工程师成绩查询网站:中国人事考试网10-10
华润银行2017校园招聘信息06-08
儿童培训绕口令:驼子和胡子03-09
快乐的童年作文400字五年级05-23