程序從掃描儀讀取值,直到給出值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時結束。 –