在Java中,我们使用了if..else..if梯形图在多个块之间执行一个代码块。但是,if … else … if梯子的语法太长。
因此,我们可以使用switch
语句代替long if … else … if梯子。使用switch
语句使我们的代码更具可读性。
switch语句的语法为:
switch (variable/expression) {
case value1:
// statements of case1
break;
case value2:
// statements of case2
break;
.. .. ...
.. .. ...
default:
// default statements
}
switch
语句评估表达式 (主要是变量 ),并将其与每个case
标签的值(可以是表达式)进行比较。
现在,如果该值匹配某个case
标签,那么将执行匹配case
标签的所有语句。
例如,如果variable/expression
等于value2 。在这种情况下,将执行该匹配case
所有语句(case2的语句)。
注意,在每种情况下都使用break
语句。 break
语句用于终止switch
语句的执行。
这很重要,因为如果不使用break
则匹配大小写之后的所有语句将按顺序执行,直到switch
语句结束。
开关流程图
注意:Java switch语句仅适用于:
- Java基本数据类型:byte,short,char和int
- Java枚举类型
- Java字符串类
- Java包装器类: 字符,Byte,Short和Integer。
示例1:Java switch语句
class Main {
public static void main(String[] args) {
int week = 4;
String day;
// switch statement to check day
switch (week) {
case 1:
day = "Sunday";
break;
case 2:
day = "Monday";
break;
case 3:
day = "Tuesday";
break;
// match the value of week
case 4:
day = "Wednesday";
break;
case 5:
day = "Thursday";
break;
case 6:
day = "Friday";
break;
case 7:
day = "Saturday";
break;
default:
day = "Invalid day";
break;
}
System.out.println("The day is " + day);
}
}
输出 :
The day is Wednesday
在上面的示例中,我们使用了switch
语句来查找一周中的某天。在这里,我们有一个可变周 ,其中包含一个整数值。将该值与switch
模块内部的每种case
进行比较。
在这里, 周的值是4 。因此,它与case 4
相匹配。因此,执行了case 4
的语句。
示例2:使用switch语句制作计算器
下面的程序从用户那里接受三个输入: 一个运算符和2个数字 。根据用户提供的运算符 ,对数字进行计算。然后结果显示在屏幕上。
在浏览该程序之前,请确保您了解Java扫描器以接受用户的输入。
import java.util.Scanner;
class Main {
public static void main(String[] args) {
char operator;
Double number1, number2, result;
// create an object of Scanner class
Scanner scanner = new Scanner(System.in);
System.out.print("Enter operator (either +, -, * or /): ");
// ask user to enter operator
operator = scanner.next().charAt(0);
System.out.print("Enter number1 and number2 respectively: ");
// ask user to enter numbers
number1 = scanner.nextDouble();
number2 = scanner.nextDouble();
switch (operator) {
// performs addition between numbers
case '+':
result = number1 + number2;
System.out.print(number1 + "+" + number2 + " = " + result);
break;
// performs subtraction between numbers
case '-':
result = number1 - number2;
System.out.print(number1 + "-" + number2 + " = " + result);
break;
// performs multiplication between numbers
case '*':
result = number1 * number2;
System.out.print(number1 + "*" + number2 + " = " + result);
break;
// performs division between numbers
case '/':
result = number1 / number2;
System.out.print(number1 + "/" + number2 + " = " + result);
break;
default:
System.out.println("Invalid operator!");
break;
}
}
}
输出 :
Enter operator (either +, -, * or /): *
Enter number1 and number2 respectively: 1.4
-5.3
1.4*-5.3 = -7.419999999999999
在上面的示例中,我们使用switch
语句创建了一个计算器。它根据用户提供的运算符执行计算。