2017年计算机二级考试java流控制学习教程:多分支语句

来源:学生作业帮助网 编辑:作业帮 时间:2024/06/01 12:51:08 计算机等级考试
2017年计算机二级考试java流控制学习教程:多分支语句计算机等级考试

  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计算机等级考试