Java 继续添加两个数字,直到输入不是双精度类型
我试图制作一个简单的计算器程序,其中用户输入两个值,从Operations类调用add()方法,然后添加值并显示结果。然后我使用了一个do while循环,在这个循环中,用户不断地输入值,这些值被加到最后一个总数中,结果就会显示出来。它必须保持运行,除非用户输入一些不是double类型的输入Java 继续添加两个数字,直到输入不是双精度类型,java,types,calculator,Java,Types,Calculator,我试图制作一个简单的计算器程序,其中用户输入两个值,从Operations类调用add()方法,然后添加值并显示结果。然后我使用了一个do while循环,在这个循环中,用户不断地输入值,这些值被加到最后一个总数中,结果就会显示出来。它必须保持运行,除非用户输入一些不是double类型的输入 import java.util.Scanner; public class App { public static void main(String[] args) { Scan
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.");
}
}
这是操作课
public class Operations {
public static double add(double n1, double n2) {
return n1 + n2;
}
}
它将前两个值相加,并显示结果。然后,它再次要求用户输入值,并显示结果。但从现在开始,我一直在努力想办法解决某个地方的问题,但却无法解决。所以请看一下我的代码,告诉我问题出在哪里。这是在do-while循环中我做错的事情 输出: 输入第一个数字: 五, 输入第二个数字: 二, 7.0 再次输入号码: 一, 8.0 请重新输入号码: 二, 这里程序正在运行,但当我按2时什么也不做。例如,如果我再次按6,它仍会将2(我之前输入的)添加到总数中,并显示该值 六, 10.0
请重新输入号码:您的问题在于事情发生的顺序。您希望在do开始时进行提示和输入,同时:
do {
System.out.println("Enter the number again: ");
number2 = input.nextDouble();
total = Operations.add(total, number2);
System.out.println(total);
} while (input.hasNextDouble());
这使得第一次重新提示和重新输入变得多余,因此您的最终类如下所示:
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.");
}
“但从现在开始,某个地方有个问题”。有什么问题吗?你有例外吗?您正在对数字2调用
input.nextInt()
,这是一个double.no。从那里开始,当我输入一个值时,什么都不会发生(程序一直在运行)。当我再次输入时,它被接受,添加到总数并显示。但是当我输入另一个值时,结果是不正确的。只是将其更改为nextDouble(),但结果是相同的。您能给出输入和输出的示例序列吗?在循环之前和内部,您有更多的nextInt()
调用。很抱歉,忘记编辑do while循环的上部。谢谢,现在开始工作了。非常感谢。现在明白了:)