下面针对switch语句的特点、格式及初级练习中的一点小技巧,做如下解析:
一、switch语句特点:
1.switch语句选择的类型只有四种:byte,short,int,char。
2.case之间与default没有顺序。先判断所有的case,没有匹配的case执行default。
3.switch语句停止的条件是遇到了break关键字或者结束switch语句的大括号。
4.如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运
行可以执行的语句,直到遇到break或者switch结尾结束。
5.switch case中的值必须要与switch表达式的值具有相同的数据类型。而且case后跟的值必须是常量,不能跟变量。
二、格式:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
…...
default:
执行语句;
break;
}
三、例题练习:
/**
需求:根据用于指定的月份,打印该月份所属的季节.
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.
345 spring 678 summer 9 10 11 autumn 12 1 2 winter
*/
import java.util.*;
class A{
public static void main(String[] args){
System.out.println("请输入月份:");//Scanner sc=new Scanner(System.in);int year=sc.nextInt();
Scanner sc=new Scanner(System.in);
int month=sc.nextInt(); //先定义一个变量month,调用输入格式
while(month<1||month>12){ //通过循环判断不用重复输入的范围
System.out.println("该月份不存在,请重新输入1-12月:");
month=sc.nextInt();
} //以上是重复输入的循环程序
switch(month){
case 3:
case 4:
case 5:
System.out.println("该月份为春季");
break;
case 6:
case 7:
case 8:
System.out.println("该月份为夏季");
break;
case 9:
case 10:
case 11:
System.out.println("该月份为秋季");
break;
case 12:
case 1:
case 2:
System.out.println("该月份为冬季");
break;
default:
//month=sc.nextInt(); 这一句有问题,如何实现再输入再执行上面判断?(见代码开端)
break;}
}
}
(注:Code中的注释需要仔细理解!)