一、switch case语句的基本用法
Java中的switch case语句用于在多个可能的选项中进行选择,其基本的结构如下:
switch (expression) {
case value1:
// statements
break;
case value2:
// statements
break;
...
default:
// statements
break;
}
switch后面的(expression)是需要进行匹配的值,而value1,value2是可能的选项值,如果匹配上了选项值,那么就执行相应的语句,如果没有匹配上任何一个选项就会执行default后面的语句。break语句用于退出switch语句,确保只执行匹配选项后的语句。
下面是一个例子,演示使用switch case语句得到当前月份的名称:
import java.util.Scanner;
public class MonthNameDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个月份的数字:");
int monthNum = sc.nextInt();
switch (monthNum) {
case 1:
System.out.println("一月");
break;
case 2:
System.out.println("二月");
break;
case 3:
System.out.println("三月");
break;
case 4:
System.out.println("四月");
break;
case 5:
System.out.println("五月");
break;
case 6:
System.out.println("六月");
break;
case 7:
System.out.println("七月");
break;
case 8:
System.out.println("八月");
break;
case 9:
System.out.println("九月");
break;
case 10:
System.out.println("十月");
break;
case 11:
System.out.println("十一月");
break;
case 12:
System.out.println("十二月");
break;
default:
System.out.println("输入的月份无效!");
break;
}
}
}
上述代码中,用户需要输入一个1到12之间的数字,然后根据输入的数字使用switch case语句得到相应月份的名称。如果输入的数字不在1到12之间,就输出“输入的月份无效!”。
二、switch case语句的常见应用
1. 字符串匹配
Java SE 7以上版本支持在switch语句中使用字符串,实现字符串的匹配。例如:
public class StringSwitchDemo {
public static void main(String[] args) {
String fruit = "orange";
int price = 0;
switch (fruit) {
case "apple":
price = 10;
break;
case "pear":
price = 8;
break;
case "orange":
price = 6;
break;
default:
price = 0;
break;
}
System.out.println(fruit+"的价格是:"+price);
}
}
以上代码演示了通过switch case语句,得到不同种类水果的价格。注意,fruit是字符串类型变量。
2. 枚举类型匹配
当我们需要处理的数据都是已知的一组值时,枚举类型会很有用。枚举类型提供了更清晰的语义,使代码更易读,并且可以有效地使用switch语句处理。
下面是一个演示怎样使用switch语句处理枚举类型(Grade)的例子:
public class GradeEnumDemo {
public static void main(String[] args) {
Grade grade = Grade.GOOD;
switch (grade) {
case EXCELLENT:
System.out.println("A优秀");
break;
case GOOD:
System.out.println("B良好");
break;
case FAIR:
System.out.println("C及格");
break;
case POOR:
System.out.println("D不及格");
break;
default:
System.out.println("未评定");
break;
}
}
}
enum Grade {
EXCELLENT, GOOD, FAIR, POOR;
}
上述代码中,枚举类型Grade包括四个值:EXCELLENT, GOOD, FAIR, POOR。根据不同的枚举值,使用switch case语句输出相应的等级。Grade是通过enum定义实现的枚举类型。
三、switch case语句的本质
Java SE规范中定义,switch语句由多个case分支和一个可选的default分支组成。case分支以及default分支本质上都是一个标签(Label)。在Java中,标签可以是任何字符或者字符串,并且以冒号结尾。
在程序执行过程中,当遇到一个标签时,就会执行标签后面的语句。换句话说,switch语句的本质是一个带标签的goto语句。标签放在每个case分支和default分支前面,而跳转语句(类似于goto)由Java编译器自己负责编译产生,这就使得我们的程序看起来更加的优雅,更易于理解。
四、switch case语句的缺点和使用限制
1. switch语句不支持浮点型和布尔型数据类型。
2. switch语句不能使用范围,必须使用固定值,即case中只能使用常量或者final变量。
3. switch语句的缺省分支应该放在最后,而不是中间或者最前面。
4. 如果在程序中需要嵌套很多的switch语句时,容易造成代码难以读懂也容易出错。
5. Java SE 7以上版本支持在switch语句中使用字符串,但是这种方法不如使用if-else语句的效率高。
总结
本文介绍了Java中switch case语句的基础用法和常见应用,比如字符串匹配和枚举类型匹配。同时,也分析了switch case语句的本质以及使用时需要注意的限制。在Java的开发过程中,判断语句是非常必要的,选择switch case语句或者if-else语句要根据实际情况判断,编写优质可维护的代码。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/276734.html
微信扫一扫
支付宝扫一扫