java - 我如何将 switch case 中的字符串用作操作?
问题描述
我正在尝试在 Java 上编写一个计算器,但在 switch 语句中,它将操作作为一个字符串,我怎样才能将它转换为一个动作?
switch(op) {
case 1: operation = "res= a + b";
break;
case 2: operation = "res = a - b";
break;
case 3: operation = "res = a * b";
break;
case 4: operation = "res = a / b";
break;
}
System.out.println(operation);
如果我删除引号,则表示我尚未初始化变量。选择手术后会询问他们。
解决方案
在获得参数之前不要执行操作:
import static java.lang.Integer.*;
import java.util.*;
class t1 {
static void calc(Scanner in) {
System.out.print("Operation: ");
int op = in.nextInt();
System.out.print("a: ");
int a = in.nextInt();
System.out.print("b: ");
int b = in.nextInt();
int res = 0;
switch(op) {
case 1:
res = a + b;
break;
case 2:
res = a - b;
break;
case 3:
res = a * b;
break;
case 4:
res = a / b;
break;
default:
System.out.println("Invalid operation");
System.exit(-1);
}
System.out.println(res);
}
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
while (true) {
calc(in);
}
}
}
您可以在请求操作数之前使用附加的 switch 语句来验证操作。
在获取操作数之前有一些方法可以设置操作,但最好先学会走路再跑。
推荐阅读
- php - 如何将 Laravel 解决方案从 MS SQL Server 迁移到 MySQL
- javascript - 有没有办法在javascript中动态命名普罗米修斯标签?
- xcode - 如何为 Interface Builder 设置环境变量?
- ceph - Ceph 显示大小计算
- html - 背景图像不会在 Bootstrap Studio 的 jumbotron 中显示?
- node.js - 弹性搜索nodejs中的映射器解析异常
- sql - Xaml如何创建条件
- javascript - .bind(this) 给出旧值,然后更新新值
- ios - 将 iOS Today Extension 捆绑包版本设置为 Flutter FLUTTER_BUILD_NUMBER
- java - SpringBoot 1.4.0,我们可以显式设置 DataSourcePoolMetadataProvidersConfiguration 的值吗