我有一系列的骰子和每一個,我需要提醒用戶,如果他們想重播它或不。最簡單的方法似乎是Scanner類的提示 - 我檢查它們輸入的內容並正確處理。但是,如果請求的數據不存在於用戶輸入中,scanner.next()將引發異常。所以,scanner.hasnext()需要以某種方式適應這裏。如何使用Scanner.hasNext填充多個數組值?
這是我的代碼;它會進入條目進入響應數組,但如果用戶輸入既不包含Ÿ也不N.將拋出一個異常
public Boolean[] chooseDice(int diceNum){
Boolean[] responses = new Boolean[diceNum];
Scanner scansworth = new Scanner(System.in);
for (int i=0; i<diceNum; i++){
System.out.printf("Reroll this die? (%d)\n",i);
responses[i] = (scansworth.next("[YN]")) == "Y" ? true : false;
}
return responses;
如何調用scansworth.hasNext(「[YN]」),從而使intepreter沒有按鎖定並且在循環的每一步之後都能正確檢查輸入?
'系統忽略一些循環的一部分 - >這個語句實際上是什麼意思? –
如果我嘗試在循環內部等待hasNext成爲true,它會在第一次正確運行,然後下一次不會正確啓動。 (我已經嘗試了幾種不同的變化,沒有在我面前發生日食,所以很難精確解釋。) – argentage
我編輯了這篇文章,試圖讓它更加明顯。 – argentage