程序从扫描仪读取值,直到给出值0,从而完成该过程。只有在给出的所有数字都是整数的情况下,程序才会编译总和。在所有其他情况下(不是所有的值都是整数),程序不会给出任何结果。 所以我注意到我的程序给出了整数的总和,即使有其他非整数值给出,有时当它们都是整数,因为它不显示真正的总和只是其中一个数字或什么。有谁能告诉我为什么我的程序无法正常工作吗?
import java.util.Scanner;
public class Testing3{
public static void main(String[] args) {
int sum1 = 0;
Scanner input = new Scanner(System.in);
System.out.println("Enter number");
String number = input.nextLine();
int value =Integer.parseInt(number);
while(true) {
if (value!=0) {
number = input.nextLine();
if (Math.round(value)==value)//condition to integer{
sum1 = sum1 + value;
} else {
System.out.println(sum1);
break;
}
}
}
}
如果你想读*整数*?,你为什么要使用'nextDouble()'。为什么不'nextInt()'?.另外,我认为你应该使用'nextLine()'来读取输入,并尝试将该值解析为一个int,捕获异常并决定要做什么。 (或匹配模式,然后解析) – TheLostMind
然后,如果您需要读取任何内容,但只显示所有值为整数的和,您可能需要将它们读作字符串('nextLine()'?)并检查如果他们是整数或不是。 – Kayaman
因为用户应该有权在扫描器中写入任何数字..如果我只是把int和用户把小数点进程结束,我需要的过程只有当用户把一个0时结束。 –