我正在創建要求2個數字然後將它們相加/相乘/除法的代碼。我設法讓這個工作,但我遇到了一個小問題。檢查輸入,看它是否在Java中是雙精度的
這是代碼多數民衆贊成竊聽我的一部分:
double number1 = 0;
do {
try {
System.out.print("First number: ");
number1 = input.nextDouble();
} catch (InputMismatchException e) {
System.out.print("This is not a number. ");
}
input.nextLine();
} while (number1 == 0);
它工作正常的什麼,我打算這樣做,這是要求一個數字。如果用戶沒有輸入數字,它會捕獲異常並阻止它退出。
while (number1 == 0);
這是我用來測試是否try和catch擔任預期,但當然意味着NUMBER1不能爲0,否則將不會停止,不斷地問了許多。
只要不輸入double,我希望它一直詢問輸入,我該如何替換?
因爲這是一個assigment,我必須不斷要求一個雙,如果它最好不使用該例外,那是可以接受的。但它必須指定一個號碼給number1,我可以稍後在程序中使用
謝謝!我在第一部分中添加了自己的代碼,並修復了我所遇到的明顯問題,但我不確定第二部分是如何工作的。我假設它最好不要捕捉異常呢? –
@ DenzelSimson對於什麼是「更好」,沒有一個通用的答案,你可以根據具體情況來決定。當你詢問用戶的輸入時,你希望他們每時每刻都會輸入錯誤的內容,所以你不應該捕捉異常,而是主動檢查正確的輸入。當您以自動生成的固定格式讀取文件時,您不會指望數據不正確,並且您不能回過頭來告訴用戶給您一個不同的輸入,以便您捕獲異常,或讓他們通過終止程序。 – dasblinkenlight