【发布时间】:2017-10-10 16:39:45
【问题描述】:
我有一个计算器类,我希望操作输入特定于这些字符串“+、-、/、*”,如果不是,我想打印一条消息以再次输入操作员。 如果有人会减少我的代码,请这样做。谢谢
这是我的代码
import java.util.Scanner;
公共类计算器1 {
public static void main(String[] args) {
Scanner num = new Scanner(System.in);
String operation;
Double fnum, lnum, answer;
System.out.println("Enter first Number: ");
while (!num.hasNextDouble())
{
num.next();
System.out.print("Enter first Number: ");
}
fnum = num.nextDouble();
System.out.println("Enter Operation: ");
//HERE IM BEING CONFUSED
while (!num.equals("+, -, /, *"))
{
num.next();
System.out.print("Enter Operator: ");
}
operation = num.next();
//End
System.out.println("Enter Second Number: ");
while (!num.hasNextDouble())
{
num.next();
System.out.print("Enter Second Number: ");
}
lnum = num.nextDouble();
switch (operation) {
case "+":
answer = fnum + lnum;
System.out.print("Equals= " + answer);
break;
case "-":
answer = fnum - lnum;
System.out.print("Equals= " + answer);
break;
case "*":
answer = fnum * lnum;
System.out.println("Equals= " + answer);
break;
case "/":
answer = fnum / lnum;
System.out.println("Equals= " + answer);
break;
default:
System.out.println("wrong operator");
break;
}
}
}
【问题讨论】:
-
!num.equals("+, -, /, *")num 是扫描仪!任何时候扫描器都不等于字符串。 -
你有什么问题?
-
调试和单步调试代码时会发生什么?错误是什么?
-
num是Scanner。它永远不会等于String。
标签: java calculator