Java 编写简单命令行计算器时遇到问题
我有一些条件:Java 编写简单命令行计算器时遇到问题,java,Java,我有一些条件: 仅整数(负数和正数) 添加(+) 减法(-) (=)等号停止并显示结果 我做了,但是有一些问题。。 问题是,当我首先输入命令行:127+3,它是OK的,但当我输入-时,它停止并说: Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:840) at java.util.Scanner.next(Scanner.java:
127+3
,它是OK的,但当我输入-
时,它停止并说:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:840)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextDouble(Scanner.java:2387)
at Calculator2.main(Calculator2.java:14)
我的代码:
import java.util.*;
import java.io.*; //just for insurance
public class Calculator2 {
public static void main(String[] args) throws Exception {
System.out.println("Welcome to the Best Calculator");
Scanner sc = new Scanner(System.in);
double first, second, ans = 0;
char operand;
while (true) {
first = sc.nextDouble();
operand = sc.next().charAt(0);
second = sc.nextDouble();
if (operand != '=') {
switch (operand) {
case '+':
ans += (first + second);
break;
case '-':
ans -= (first - second);
break;
}
} else if (operand == '=') {
System.out.println("The result is: " + ans);
System.exit(0);
}
}
}
}
一些例子:
欢迎使用最佳计算器127+3
-
40
=
结果是:90
需要帮助,我希望有很多好人)你真的应该重新表述你的标题“我做到了,但有一些问题…”什么问题?编辑的标题。仍然不理想,但我能做的最好的事情是,缺乏关于实际问题的信息。如果是多余的,那么您的
else。一个简单的else
就足够了。例外情况是,当您真正想要的是隐式使用前面的答案作为first
时,您需要另一个first
值。尝试将的声明首先移动到循环外部。得到答案后,首先将该值存储回中。