Java计算器不会输出答案
所以我仍然试图让这个计算器正常工作。整个观点是它一直要求y值和一个操作员,直到用户输入“q”。唯一的是它不会返回值,它不会停止,一旦我输入q。它只是在不断询问y值。下面是我继续收到的输出的一个例子。我是否必须创建一个额外的变量来保存y值以更新它并在之后将其打印出来?Java计算器不会输出答案
X:5 Y:5 OP:+ Y:5运算:Q Y:
Scanner keyboard = new Scanner(System.in); double x;
double y;
String Op;
System.out.print("X: ");
x = keyboard.nextDouble();
do{
System.out.print("Y: ");
y = keyboard.nextDouble();
keyboard.nextLine();
System.out.print("Op: ");
Op = keyboard.nextLine();
if(Op == "+"){
double result = sum(x,y);
System.out.println(result);
}
else if(Op == "/"){
double division = div(x,y);
System.out.println(division);
}
else if(Op == "-"){
double subtraction = sub(x,y);
System.out.println(subtraction);
}
else if(Op == "*"){
double times = mult(x,y);
System.out.println(times);
}
else if(Op == "q")
System.out.print("Your last result was: " +y);
}while(Op != "q");
}
public static double sum (double a, double b){
double res = a + b;
return res;
}
public static double div (double a, double b){
if(b==0){
System.out.println("Error, attempted a division by zero");
return b;
}
double divide = a/b;
return divide;
}
public static double sub (double a, double b){
double minus = a-b;
return minus;
}
public static double mult (double a, double b){
double times = a*b;
return times;
}
}
回答:
String
对于比较则需要使用该方法equals
或equalsIgnoreCase
。
==
运算符仅适用于诸如char,int,byte等基元。对于对象,如String,需要使用比较方法。
转换为正确的方法将解决您的问题。示例
if (Op.equalsIgnoreCase("q")){ ...
}
回答:
==和!=运算符不适用于字符串。您必须改用Op.equals(“...”)。
以上是 Java计算器不会输出答案 的全部内容, 来源链接: utcz.com/qa/261309.html