控制执行流程的理解四
1、switch
switch有时也被划归为一种选择语句。根据整数表达式的值,switch语句可以从一系列代码中选出一行去执行。它的格式如下:
switch(integral-selector){
case integral-value1:statement;break;
...
default:statement;
}
其中,Integral-selector(整数选择因子)是一个能够产生整数值的表达式,switch能将这个表达式的结果与每个integral-value(整数值)相比较。若发现相符的,就执行对应的语句(单一语句或多条语句,其中并不需要括号)。若没有发现相符的,就执行default(默认)语句。
在上面的定义中,大家会注意到每个case均以一个break结尾,这样可使执行流程跳转至switch主体的末尾。这是构建switch语句的一种传统方式,但break是可选的。若省略break,会继续执行后面的case语句,直到遇到一个break为止。
switch语句是实现多路选择(也就是说从一系列执行路径中挑选一个)的一种干净利落的方法。但它要求使用一个选择因子,并且必须是int或char那样的整数值。对于非整数类型,则必须使用一系列if语句。enum可以和switch协调工作。
在case语句中,使用单引号引起的字符也会产生用于比较的整数值。请注意case语句能够堆叠在一起,为一段代码形成多重匹配,即只要符合多种条件中的一种,就执行那段特别的代码。这时也应注意将break语句置于特定case的末尾,否则控制流程会简单的下移,处理后面的case。
在下面的语句中:
Random rand = new Random(47) ;
int c = rand.nextInt(26) + 'a' ;
Random.nextInt() 将产生0~25之间的一个随机int 值,它将被加到“a”上。这表示“a”将自动被转换为int以执行加法。为了把c当作字符打印,必须将其转型为char;否则,将产生整型输出。

浙公网安备 33010602011771号