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对于比较则需要使用该方法equalsequalsIgnoreCase

==运算符仅适用于诸如char,int,byte等基元。对于对象,如String,需要使用比较方法。

转换为正确的方法将解决您的问题。示例

if (Op.equalsIgnoreCase("q")){ 

...

}

回答:

==和!=运算符不适用于字符串。您必须改用Op.equals(“...”)。

以上是 Java计算器不会输出答案 的全部内容, 来源链接: utcz.com/qa/261309.html

回到顶部