在Java编程中,switch语句是一种非常常见的流程控制语句,通常用于对于一个变量的不同取值进行不同的处理。
一、基础语法
在最基础的使用情况下,Java switch语句的基础语法如下:
switch (expression) { case value1: // statement(s) to be executed if expression = value1; break; case value2: // statement(s) to be executed if expression = value2; break; case value3: // statement(s) to be executed if expression = value3; break; ... default: // statement(s) to be executed if none of the above is true; }
其中,expression必须是一个整型或字符型的变量或表达式,用来表示被比较的值。而value1、value2、value3等表示不同的取值,并且每个case语句中的语句可以是任何Java语句,包括表达式、变量、方法调用等等。而default语句则为可选的,表示当expression的值不匹配任何一个case时执行的语句。
下面是一个示例代码,使用switch语句实现了一个非常简单的计算器功能:
import java.util.Scanner; public class SwitchDemo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入两个数和运算符:"); double num1 = scanner.nextDouble(); double num2 = scanner.nextDouble(); String operator = scanner.next(); double result = 0; switch (operator) { case "+": result = num1 + num2; break; case "-": result = num1 - num2; break; case "*": result = num1 * num2; break; case "/": result = num1 / num2; break; default: System.out.println("请输入正确的运算符:+、-、*、/"); break; } System.out.println("计算结果为:" + result); } }
在这个示例代码中,我们通过switch语句的不同case实现了对于不同运算符的判断,从而进行了不同的计算。
二、特殊用法
1、省略break语句
在Java switch语句中,每个case后面都需要添加break语句,用来表示执行完当前case后直接跳出整个switch语句。但是,在某些情况下我们可能会想要连续执行多个case中的语句,这时就可以省略break语句。
例如,下面的示例代码中我们省略了break语句,从而实现了从weekday的值开始执行后续所有case中的语句,并且输出的结果为“今天是周几”:
public class SwitchDemo { public static void main(String[] args) { int weekday = 3; String dayType; switch (weekday) { case 1: case 2: case 3: case 4: case 5: dayType = "工作日"; break; case 6: case 7: dayType = "休息日"; break; default: dayType = "错误"; break; } System.out.println("今天是" + dayType); } }
2、数据类型能否被switch语句使用
在Java switch语句中,只有整型(byte、short、int、long)和字符型(char)的变量或表达式才可以作为expression,而其它任何类型的变量或表达式都不允许。
3、Java 12中的switch语句新特性
在Java 12中,switch语句引入了一个新特性,即switch表达式。使用时可以省略expression和case标签,可以直接使用表达式并返回一个值。示例代码如下:
public class SwitchDemo { public static void main(String[] args) { String result = switch (getValue()) { case "A", "B" -> "Good"; case "C", "D" -> "Fair"; case "E" -> "Poor"; default -> "Fail"; }; System.out.println(result); } public static String getValue() { return "A"; } }
在这个示例代码中,我们使用了新的switch表达式,省略了expression和case标签,直接对于getValue()方法的返回值进行判断,并返回相应的字符串。
三、总结
在Java编程中,switch语句是一种非常常见的流程控制语句,通常用于对于一个变量的不同取值进行不同的处理。通过本文的介绍,我们已经了解了Java switch语句的基本语法和特殊用法,相信可以在实际编程中灵活运用。