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"); } }