俄罗斯裔美国人:谁有switch最详细讲解越细越好

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 02:10:47

switch (varchar)
{
case (abc):
1..;
2..;
break;

case (cde):
1..;
2..;
break;

..
}

使用switch语句可以根据一个整型表达式有条件地执行语句。下面的例程SwitchDemo,声明了一个整型变量month,它的数值代表了月份。这个程序显示了月份的名字,主要是根据month的数值并且使用了switch语句。

public class SwitchDemo {

public static void main(String[] args) {

int month = 8;

switch (month) {

case 1: System.out.println("January"); break;

case 2: System.out.println("February"); break;

case 3: System.out.println("March"); break;

case 4: System.out.println("April"); break;

case 5: System.out.println("May"); break;

case 6: System.out.println("June"); break;

case 7: System.out.println("July"); break;

case 8: System.out.println("August"); break;

case 9: System.out.println("September"); break;

case 10: System.out.println("October"); break;

case 11: System.out.println("November"); break;

case 12: System.out.println("December"); break;

}

}

}

这个switch语句计算它的表达式,在这个例子中是计算month的数值,然后计算适当的case 语句。这样,程序的输出为:August。

当然,你可以使用if语句来实现它:

int month = 8;

if (month == 1) {

System.out.println("January");

} else if (month == 2) {

System.out.println("February");

}

. . .

决定使用if语句还是switch语句的关键主要是根据可读型以及其它因素。if语句可以在更大范围或者条件来决定,而switch只有根据单个整型变量来做决定。同时,提供给case语句的数值必须是单一的。另外一点是,switch语句在每个case之后有一个break语句。每个break语句终止了swtich语句,并且控制流程继续switch块之后的第一个语句。break语句是必须的,因为没有它,case语句就会失效,也就是说,没有break语句,控制流程按顺序执行case语句。

下面的程序SwichDemo2将介绍为什么它是有效的;

public class SwitchDemo2 {

public static void main(String[] args) {

int month = 2;

int year = 2000;

int numDays = 0;

switch (month) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

numDays = 31;

break;

case 4:

case 6:

case 9:

case 11:

numDays = 30;

break;

case 2:

if ( ((year % 4 == 0) && !(year % 100 == 0))

|| (year % 400 == 0) )

numDays = 29;

else

numDays = 28;

break;

}

System.out.println("Number of Days = " + numDays);

}

}

这个程序的输出为:

Number of Days = 29

最后的break语句是不需要的,因为流程将跳出switch语句了。但是,我们推荐使用为最后一个case语句使用一个break以防你需要还增加更多的case语句。这就使得更容易修改代码以及减少错误。

一般地,你可以使用break来在分支语句中终止循环。最后你可以在switch最后使用缺省地语句来处理所有的上面没有处理的情况。

int month = 8;

. . .

switch (month) {

case 1: System.out.println("January"); break;

case 2: System.out.println("February"); break;

case 3: System.out.println("March"); break;

case 4: System.out.println("April"); break;

case 5: System.out.println("May"); break;

case 6: System.out.println("June"); break;

case 7: System.out.println("July"); break;

case 8: System.out.println("August"); break;

case 9: System.out.println("September"); break;

case 10: System.out.println("October"); break;

case 11: System.out.println("November"); break;

case 12: System.out.println("December"); break;

default: System.out.println("Hey, that's not a valid month!"); break;