您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在Java中,switch
语句是一种多路分支选择结构,它允许你根据一个变量的值执行不同的代码块
使用枚举类型作为switch
的参数:
枚举类型是一种特殊的类,用于表示一组固定的常量值。将枚举类型作为switch
语句的参数,可以使代码更具可读性和可维护性。
enum Operation {
ADD, SUBTRACT, MULTIPLY, DIVIDE
}
double calculate(double a, double b, Operation operation) {
switch (operation) {
case ADD:
return a + b;
case SUBTRACT:
return a - b;
case MULTIPLY:
return a * b;
case DIVIDE:
if (b == 0) {
throw new IllegalArgumentException("Division by zero is not allowed.");
}
return a / b;
default:
throw new IllegalArgumentException("Invalid operation.");
}
}
使用字符串作为switch
的参数:
虽然Java不支持字符串类型的switch
语句,但你可以通过将字符串转换为枚举类型或使用if-else
语句来实现类似的功能。
String operation = "ADD"; // 可以从用户输入或其他地方获取
double calculate(double a, double b, String operation) {
Operation op;
try {
op = Operation.valueOf(operation.toUpperCase());
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException("Invalid operation.", e);
}
switch (op) {
case ADD:
return a + b;
case SUBTRACT:
return a - b;
case MULTIPLY:
return a * b;
case DIVIDE:
if (b == 0) {
throw new IllegalArgumentException("Division by zero is not allowed.");
}
return a / b;
default:
throw new IllegalArgumentException("Invalid operation.");
}
}
使用模式匹配(Java 12及更高版本):
从Java 12开始,你可以使用switch
表达式和模式匹配来简化代码。模式匹配允许你根据变量的类型和值执行不同的代码块。
double calculate(double a, double b, String operation) {
return switch (operation.toUpperCase()) {
case "ADD" -> a + b;
case "SUBTRACT" -> a - b;
case "MULTIPLY" -> a * b;
case "DIVIDE" -> {
if (b == 0) {
throw new IllegalArgumentException("Division by zero is not allowed.");
}
a / b;
}
default -> throw new IllegalArgumentException("Invalid operation.");
};
}
通过使用这些方法,你可以使Java switch
语句更灵活、可读和可维护。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。