現在我們正在學習 while 回圈 - 這就是挑戰。“程式應該反復提示用戶輸入一個數字。保持用戶輸入數字的運行總數,并記錄用戶輸入的數量。只要用戶輸入的東西不是數字,程式就應該停止整數。當用戶完成后,列印用戶輸入的條目數及其總和。”
“與此程式的示例互動可能如下所示:程式:輸入一個整數以繼續或輸入一個非整數值以完成。然后按回車。
用戶:2
程式:輸入一個整數以繼續或輸入一個非整數值以完成。然后按回車。
用戶:6
程式:輸入一個整數以繼續或輸入一個非整數值以完成。然后按回車。
用戶:89
程式:輸入一個整數以繼續或輸入一個非整數值以完成。然后按回車。
用戶:q
程式:您輸入了 3 個整數。您輸入的總和是 97。”
這是我到目前為止所擁有的。
import java.util.Scanner;
public class InputSequence
{
public static void main (String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println ("Enter an integer to continue or a non-integer value to finish. Then press return.");
int sum = 0;
int total = 0;
while (scan.hasNextInt())
{
scan.next();
System.out.println ("Enter an integer to continue or a non-integer value to finish. Then press return.");
int input = scan.nextInt();
sum = input input;
total = total 1;
}
System.out.println ("You entered " total " integers. The sum of your entries is " sum);
}
}
我只是有點困惑,因為我的互動似乎在 while 回圈中每 2 次跳過 system.out.println ,然后不將第一個輸入計入總數。我相信總和也不總是正確計算。另外,如果我輸入了很多整數,然后輸入一個非整數來結束程式,我將收到一個錯誤而不是結束訊息。但是,假設我先輸入兩個整數,然后輸入一個字串,我將得到結束訊息。
uj5u.com熱心網友回復:
您的問題scan.next()在于可以洗掉的用法,并且應該System.out.println正確顯示。
.next()方法是一個通用方法,nextInt()它回傳一個String代替。
您可以做的另一件事是從while回圈切換到do while以防止您重復此行兩次:
System.out.println ("Enter an integer to continue or a non-integer value to finish. Then press return.");
一個例子是:
Scanner scan = new Scanner(System.in);
int sum = 0;
int total = 0;
do {
System.out.println ("Enter an integer to continue or a non-integer value to finish. Then press return.");
int input = scan.nextInt();
sum = sum input;
total = total 1;
} while (scan.hasNextInt());
System.out.println ("You entered " total " integers. The sum of your entries is " sum);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336414.html
下一篇:java中的減法回圈
