switch case 语句判断一个变量与一系列值中某个值是否相等,如果和给定的值相等的话,Java 的程序会执行一个判断。
使用 switch 的主要是为了降低大量的 if … else 语句的使用。
一个经典的使用案例就是针对一周七天我们来进行判断。
但是有点遗憾的是在 Java 1.7 版本之前,这个语句是不支持对 String 字符串进行判断的。
如下面的代码:
package edu.nec.course.week3.inclass.switches;
import java.util.Scanner;
public class SampleSwitch2 {
public static void main(String[] args) {
Scanner keyb = new Scanner(System.in);
System.out.print("Enter a month, 1 to 12: ");
String month = keyb.next();
// accept an int to strip away leading 0
// convert to string
// sample switch statement
// using a string
String monthString;
switch (month) {
case "1":
monthString = "January";
break; // break statement
case "01":
monthString = "January"; //handle leading 0
break; // break statement
case "2":
monthString = "February";
break;
case "3":
monthString = "March";
break;
case "4":
monthString = "April";
break;
case "5":
monthString = "May";
break;
case "6":
monthString = "June";
break;
case "7":
monthString = "July";
break;
case "8":
monthString = "August";
break;
case "9":
monthString = "September";
break;
case "10":
monthString = "October";
break;
case "11":
monthString = "November";
break;
case "12":
monthString = "December";
break;
default:
monthString = "an invalid month";
break;
}
System.out.println("using string " + month + " is " + monthString);
keyb.close();
}
}
这部分的代码就是针对 Java Switch 的字符串类型进行比较的。
在早期的 JDK 版本中,这个功能是没有的。
Break 和 Default 关键字
在比较的过程中,我们通常都会使用一个 Break 关键字。
使用这个关键字,我们能够让比较程序能够跳出循环。
当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
同时,我们还会使用 Default 关键字。
这个关键字的作用就是当没有任何条件都满足的时候我们执行的语句,通常在这里我们会给出一些提示。