“开关”(Switch)有时也被划分为一种“选择语句”。根据一个整数表达式的值,switch 语句可从一系列代码选出一段执行。它的格式如下:
其中,“整数选择因子”是一个特殊的表达式,能产生整数值。switch 能将整数选择因子的结果与每个整数值比较。若发现相符的,就执行对应的语句(简单或复合语句)。若没有发现相符的,就执行default 语句。
在上面的定义中,大家会注意到每个case 均以一个break 结尾。这样可使执行流程跳转至switch 主体的末尾。这是构建switch 语句的一种传统方式,但break 是可选的。若省略break,会继续执行后面的case 语句的代码,直到遇到一个break 为止。尽管通常不想出现这种情况,但对有经验的程序员来说,也许能够善加利用。注意最后的default 语句没有break,因为执行流程已到了break 的跳转目的地。当然,如果考虑到编程风格方面的原因,完全可以在default 语句的末尾放置一个break,尽管它并没有任何实际的用处。switch 语句是实现多路选择的一种易行方式(比如从一系列执行路径中挑选一个)。但它要求使用一个选择因子,并且必须是int 或char 那样的整数值。例如,假若将一个字串或者浮点数作为选择因子使用,那么它们在switch 语句里是不会工作的。对于非整数类型,则必须使用一系列if 语句。
下面这个例子可随机生成字母,并判断它们是元音还是辅音字母:
switch(整数选择因子) {
case 整数值1 : 语句; break;
case 整数值2 : 语句; break;
case 整数值3 : 语句; break;
case 整数值4 : 语句; break;
case 整数值5 : 语句; break;
//..
default:语句;
}
其中,“整数选择因子”是一个特殊的表达式,能产生整数值。switch 能将整数选择因子的结果与每个整数值比较。若发现相符的,就执行对应的语句(简单或复合语句)。若没有发现相符的,就执行default 语句。
在上面的定义中,大家会注意到每个case 均以一个break 结尾。这样可使执行流程跳转至switch 主体的末尾。这是构建switch 语句的一种传统方式,但break 是可选的。若省略break,会继续执行后面的case 语句的代码,直到遇到一个break 为止。尽管通常不想出现这种情况,但对有经验的程序员来说,也许能够善加利用。注意最后的default 语句没有break,因为执行流程已到了break 的跳转目的地。当然,如果考虑到编程风格方面的原因,完全可以在default 语句的末尾放置一个break,尽管它并没有任何实际的用处。switch 语句是实现多路选择的一种易行方式(比如从一系列执行路径中挑选一个)。但它要求使用一个选择因子,并且必须是int 或char 那样的整数值。例如,假若将一个字串或者浮点数作为选择因子使用,那么它们在switch 语句里是不会工作的。对于非整数类型,则必须使用一系列if 语句。
下面这个例子可随机生成字母,并判断它们是元音还是辅音字母:
/*
* 文件名:VowelsAndConsonants.java
* 版权:Copyright by myoursky
* 描述:Swith示例,生成一个随机字母,并判断它是元音还是辅音字母。
* 修改人:gaoxiaohan
* 修改时间:2014-10-15
* 跟踪单号:
* 修改单号:
* 修改内容:
*/
package com.myoursky.j2se;
import java.util.Random;
public class VowelsAndConsonants {
/**
* Description:
* “开关”(Switch)有时也被划分为一种“选择语句”。
* 根据一个整数表达式的值,switch 语句可从一系列代码选出一段执行。 <br>
* @see
*/
public static void main(String[] args) {
Random rand = new Random();
int c = rand.nextInt(26) + 'a';
System.out.print((char)c + "," + c + ": ");
switch(c){
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
System.out.print("vowel.");
break;
case 'y':
case 'w':
System.out.print("Sometimes a vowel.");
break;
default:
System.out.println("consonants.");
}
System.out.print("\n");
}
}