继续添加两个数字,直到输入不是 double 类型
Keep adding two numbers until the input is not a double type
我正在尝试制作一个简单的计算器程序,用户在其中输入两个值,从操作 class 调用方法 add() 并添加值并显示结果。然后我使用一个 do while 循环,在这个循环中,用户不断输入值,这些值被添加到最后一个总数中并显示结果。它必须保持 运行 除非用户输入一些不是双精度类型的输入。
import java.util.Scanner;
public class App {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter the first number: ");
double number = input.nextDouble();
System.out.println("Enter the second number: ");
double number2 = input.nextDouble();
double total = Operations.add(number, number2);
System.out.println(total);
System.out.println("Enter the number again: );
number2 = input.nextDouble();
do {
total = Operations.add(total, number2);
System.out.println(total);
System.out.println("Enter the number again: ");
number2 = input.nextDouble();
} while (input.hasNextDouble());
System.out.println("Exit.");
}
}
这是操作 class
public class Operations {
public static double add(double n1, double n2) {
return n1 + n2;
}
}
将前两个值相加,并显示结果。然后它再次询问该值,用户输入,并显示结果。但是从这里开始,某个地方出现了一个问题,我一直在努力弄清楚但无法做到。所以请查看我的代码并告诉我问题出在哪里。它在 do while 循环中我做错了。
输出:
输入第一个数字:
5
输入第二个数字:
2
7.0
再次输入号码:
1
8.0
请再次输入号码:
2
这里的程序是运行,但是当我按2时什么都不做。例如,如果我再次按6,它仍然会把2(我之前输入的)加到总数上,显示
6
10.0
请再次输入号码:
您的问题在于事情发生的顺序。你想在do-while的开头提示和输入:
do {
System.out.println("Enter the number again: ");
number2 = input.nextDouble();
total = Operations.add(total, number2);
System.out.println(total);
} while (input.hasNextDouble());
这使得第一次重新提示和重新输入变得多余,因此您的最终 class 看起来像:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter the first number: ");
double number = input.nextDouble();
System.out.println("Enter the second number: ");
double number2 = input.nextDouble();
double total = Operations.add(number, number2);
System.out.println(total);
do {
System.out.println("Enter the number again: ");
number2 = input.nextDouble();
total = Operations.add(total, number2);
System.out.println(total);
} while (input.hasNextDouble());
System.out.println("Exit.");
}