switch〔开关)语句使你能够从多个选项中进行选择,这些选项是根据给定表达式的一系列固定值来设置的。这个表达式必须产生一个类型为char,byte, short或者int的结果,而不能是long类型,否则该语句就不会通过编译。通常情况下,它与旋转开关的操作方式非常类似,即都是从一系列固定值的选项中选择一个。例如,在对洗衣机操作时,你可以应用这种方法从机器的不同设置中选取一项。你将转动旋钮来选择你所要的选项,旋钮可对应于棉花、羊毛、人造纺织品等等服装材质的不同位置。

对应这个逻辑的,switch语句为:

switch(wash)

{

case 1 //wash is 1 for cotton

system.out.println(cotton selected);

break;

case 2 //wash is 2 for cotton

system.out.println(Linen selected);

break;

case 3 //wash is 3 for cotton

system.out.println(wool selected);

break;

default: //Not a valid value for wash

system.out.println(Selection error)

break;

在这条switch语句中,在关键字switch后的括号中指定的表达式将决定选择哪一项。

在本例中是变量wash,该变量应该在前面被声明为chax, byte, short或者int类型。你用一个或者多个分情况数值(case values )定义叮能的选择分支,它又被称作分情况标号(caselabels,用关键字case定义。一条switch语句的所有分情况标号都将包含在,witch语句的大括号中,并且可以被任意排列。在上面的例子中,我们使用了三个分情况数值。当switch的表达式结果等于一个给定的分情况数值时,这个分情况数值所对应的分支就被选定。

当选定一个给定的分情况数值时,跟在分情况标号后面的语句将执行。所以,如果wash的结果为2,跟在语句:

case 2: //wash is 2 for Linen

后面的语句将被执行。在本例中是:

System.out.println("Linen selected");

break;

在执行break语句后,紧接着就执行最靠近多分支Sw1tCh开关语句后面的语句。break并不是必需的,但如果在一个分支的尾部没有break语句,就会按顺序执行下一个分支,直到遇到break语句或者到switch语句块结束处。通常很少这样使用。在我们的例子中,default语句后面的break从严格意义上讲是不必要的,但是,当你在switch语句块结束处增加另一个分情况标号时,它会对程序起到保护作用。最后一个分情况语句的break可以被忽略。

在switch语句中,每个需要处理的选项都对应于一个分情况标号,并且必须是惟一的。在上面的例子中使用default语句是可选的。当switch表达式的结果与定义的所有分情况数值都不相等时,default分情况分支就被选择。如果没有default,在switch表达式的结果与所有分情况标号都不匹配时,就会执行位于switch语句大括号之后的语句。

在这里,当switch表达式的结果与一个分情况标号的数值相等时,此分支情况的代码执行,然后继续执行其后的所有分支语句,若包含default分情况语句块,也要执行。实际上,我们往往不希望这样处理,所以一定不要忘记加入break语句。

你可以让几个不同分情况标号执行相同的语句,如同下面的switch语句:

char yesNo="N"

//more program loqic

switch(yesNo)

(

case "N"

case "N"

system.out.println(No selected)

break;

case "Y"

case "Y"

system.out.println(Yes selected)

break;

在这里,变量yesNo从键盘接受一个字符。你根据用户输入的Y或N执行不同的操作。但是,你要能够接受大写或小写的分情况选项。将这些分情况标号组合后,switch语句可以完成这项工作。注意:这里没有default分情况选项。如果yeshla包含一个在分情况语句中未出现的字符,开关语句就没有任何响应。在这种情况下,你可以增加一个default分情况选项来输出一条信息,表明yesNo的值是不效的。

当然,你也可以使用if语句来构造这种逻辑结果:

if(yesNo=="n"||yesNo=="N")

system.out.println("No selected")

else

if(yesNo__"y"||yesNo=="Y")

system.out.println("Yes selected")

我认为switch语句应用起来比较容易,我很喜欢使用它,你在编写程序时可自行决定。

QQ 744437114

疯狂软件官网:http://www.fkjava.org

疯狂java视频 android视频:http://www.fkjava.org/video.html