所以我正在为java编写一个四函数计算器(是的,我知道我在浪费时间,我只是在使用/进入java。)它需要前两个输入fina并添加/减去/等他们,并输出作为答案,我在答案后加上一个while循环,这样用户就可以输入更多他想要的数字。
while(finalanswer == 0){
System.out.println("If finished, type 'done'.");
System.out.println("To change your operation, type 'change'. Otherwise, enter your next number.");
if(calc.next().equals("done")){
finalanswer = 1; break;
}else if(calc.next().equals("change")){
System.out.println("'addition', 'subtraction', 'division', or 'multiplication'?");
userOperation = calc.next();
}else{
modanswer = calc.nextDouble();
if(userOperation.equals("addition")){
System.out.println(answer += modanswer);
}else if(userOperation.equals("subtraction")){
System.out.println(answer -= modanswer);
}else if(userOperation.equals("division")){
System.out.println(answer /= modanswer);
}else{System.out.println(answer *= modanswer);}
}
}
这是允许用户根据需要添加更多输入的循环,但是当我尝试添加一个数字时,我必须首先键入两个其他数字(这对我看到的没有影响)然后最后输入第三个数字并添加到原始答案中。
答案 0 :(得分:0)
像Pshemo所说,在检查不同的条件之前,你必须存储calc.next()
:
String tmp = calc.next();
if(tmp.equals("done")){
finalanswer = 1; break;
}else if(tmp.equals("change")){
System.out.println("'addition', 'subtraction', 'division', or 'multiplication'?");
userOperation = calc.next();
}else{
.
.
.
答案 1 :(得分:0)
正如Pshemo简要解释的那样,calc.next()
函数要求用户输入内容,并返回输入。在此代码中,calc.next()
在while循环的每个循环中被调用三次。如果第一个输入没有“完成”,则继续。如果第二个输入不是“更改”,则继续,第三个输入(通过calc.nextDouble()
获得)被分配给modanswer
。
您需要将calc.next()
的值存储为单独的变量,以避免必须三次读取输入:
while(finalanswer == 0){
System.out.println("If finished, type 'done'.");
System.out.println("To change your operation, type 'change'. Otherwise, enter your next number.");
String input = calc.next();
if(input.equals("done")){
finalanswer = 1; break;
}else if(input.equals("change")){
System.out.println("'addition', 'subtraction', 'division', or 'multiplication'?");
userOperation = calc.next();
}else{
modanswer = Integer.parseInt(input);
...
请注意,您需要使用Integer.parsInt()
将通过calc.next()
获得的字符串转换为整数。