原标题:Java基础篇:switch语句

在平时的java学习中,switch语句也是很重要的一部分,今天就简单的聊一下switch语句。

switch语句是Java的多路分支语句。它提供了一种基于一个表达式的值来使程序执行不同部分的简单方法。因此,它提供了一个比一系列if-else-if语句更好的选择。switch语句的通用形式如下:

switch (expression) {
case value1:
// statement sequence
break;
case value2:
// statement sequence
break;
case valueN:
// statement sequence
break;
default:
// default statement sequence
}

表达式expression必须为byte,short,int或char类型。每个case语句后的值value必须是与表达式类型兼容的特定的一个常量(它必须为一个常量,而不是变量)。重复的case值是不允许的。

switch语句的执行过程如下:表达式的值与每个case语句中的常量作比较。如果发现了一个与之相匹配的,则执行该case语句后的代码。如果没有一个case常量与表达式的值相匹配,则执行default语句。当然,default语句是可选的。如果没有相匹配的case语句,也没有default语句,则什么也不执行。

在case语句序列中的break语句将引起程序流从整个switch语句退出。当遇到一个break语句时,程序将从整个switch语句后的第一行代码开始继续执行。这有一种“跳出” switch语句的效果。

下面是一个使用switch语句的简单例子:

// A simple example of the switch.
class SampleSwitch {
public static void main(String args[]) {
for(int i=0; i<6; i++)
switch(i) {
case 0:
System.out.println("i is zero.");
break;
case 1:
System.out.println("i is one.");
break;
case 2:
System.out.println("i is two.");
break;
case 3:
System.out.println("i is three.");
break;
default:
System.out.println("i is greater than 3.");
}
}
}

该程序的输出如下:

i is zero.
i is one.
i is two.
i is three.
i is greater than 3.
i is greater than 3.

从中可以看出,每一次循环,与i值相配的case常量后的相关语句就被执行。其他语句则被忽略。当i大于3时,没有可以匹配的case语句,因此执行default语句。

break语句是可选的。如果你省略了break语句,程序将继续执行下一个case语句。有时需要在多个case语句之间没有break语句。例如下面的程序:

// In a switch, break statements are optional.
class MissingBreak {
public static void main(String args[]) {
for(int i=0; i<12; i++)
switch(i) {
case 0:
case 1:
case 2:
case 3:
case 4:
System.out.println("i is less than 5");
break;
case 5:
case 6:
case 7:
case 8:
case 9:
System.out.println("i is less than 10");
break;
default:
System.out.println("i is 10 or more");
}
}
}

该程序产生的输出如下:

i is less than 5
i is less than 5
i is less than 5
i is less than 5
i is less than 5
i is less than 10
i is less than 10
i is less than 10
i is less than 10
i is less than 10
i is 10 or more
i is 10 or more

正如该程序所演示的那样,如果没有break语句,程序将继续执行下面的每一个case语句,直到遇到break语句(或switch语句的末尾)。

java switch 例子 java switch()_java基础switch

当然该例子是为了示例而人为构造的,省略break语句在真实的程序中有许多实际的应用。为了说明它更现实的用法,让我们考虑下例对以前显示季节例子的重写。这个重写的版本使用switch语句来使程序的执行更高效。

// An improved version of the season program.
class Switch {
public static void main(String args[]) {
int month = 4;
String season;
switch (month) {
case 12:
case 1:
case 2:
season = "Winter";
break;
case 3:
case 4:
case 5:
season = "Spring";
break;
case 6:
case 7:
case 8:
season = "Summer";
break;
case 9:
case 10:
case 11:
season = "Autumn";
break;
default:
season = "Bogus Month";
}
System.out.println("April is in the " + season + ".");
}
}

结束

Java基础篇:switch语句到这里就说完了