牛骨文教育服务平台(让学习变的简单)

这节我们看一下判断结构中的switch语句,也就是选择语句.

switch语句的格式如下:

		switch(表达式)//这里的表达式只直持byte short int char这四种类型
		{
			case 取值1:
				执行语句;
				break;
			case 取值2:
				执行语句;
				break;
			......
			default:
				执行语句;
				break;
		}

注意表达式只直持byte,short,int和char这四种类型.

对于switch语句来说,无论表达式是什么,都会从第一个case开始执行,并且一般每case中都有break语句.

default语句可以省略,但一般不这么做,当case中没有对应的结果,就执行default语句.

记住:default语句可以放任case的位置,但是执行的时候defualt语句都是最后执行.

下面我们看一个switch用法的例子

class SwitchTest 
{
	public static void main(String[] args) 
	{
		/*
		用户输入的数据对应的出星期.
		*/
		int week = 5;//随意值
		switch(week)//判断输入的数字,到下面的case中找答案,找到之后执行对应case中的语句.
		{
			case 1:
				System.out.println(week+"对应的是星期一");
				break;
			case 2:
				System.out.println(week+"对应的是星期二");
				break;
			case 3:
				System.out.println(week+"对应的是星期三");
				break;
			case 4:
				System.out.println(week+"对应的是星期四");
				break;
			case 5:
				System.out.println(week+"对应的是星期五");
				break;
			case 6:
				System.out.println(week+"对应的是星期六");
				break;
			case 7:
				System.out.println(week+"对应的是星期七");
				break;
			default:
				System.out.println(week+"没有对应的星期");
				break;
		}

		/*
		季节
		*/
		int month = 6;
		switch(month)
		{
			case 3:
			case 4:
			case 5:
				System.out.println(month+"月是春季");
				break;
			case 6:
			case 7:
			case 8:
				System.out.println(month+"月是春季");
				break;
			case 9:
			case 10:
			case 11:
				System.out.println(month+"月是春季");
				break;
			case 12:
			case 1:
			case 2:
				System.out.println(month+"月是春季");
				break;
			default:
				System.out.println(month+"月没有对应的季节");
				break;

		}
	}
}

和上一节的例子对比,我们看到if语句和switch语句都实现了相同的季节选择,那我们就说说这两种语句的区别.
if:
1.对具体的值进行判断
2.对区间判断
3.对运算结果是boolean类型的表达式进行判断

switch:
1.对具体的值进行判断
2.值的个数通常是固定的
3.对于几个固定的值判断,建议使用switch语句,因为swich语句会将具体的答案都加载进内在
4.效率相对高一点
5.功能性较差
6.书写麻烦