[英]Java Program skips over user input using the Scanner class and print statements
我以前從未遇到過此類問題,但我最近的三個項目都遇到了同樣的問題,由於某種原因,Java 跳過了用戶的輸入。 無論提供什么幫助都將不勝感激!
注意:為了給出這個問題的一些背景知識,程序應該在 do-while 循環中運行游戲。 第一輪完成后,這些代碼行的目的是讓用戶玩更多的游戲輪次。 它將用戶的輸入存儲在一個字符串中,然后獲取第一個字符。 如果字符是“y”或“Y”,則將開始另一輪。 如果字符不是“y”或“Y”,程序將結束。
int iterations = 0;
do{
System.out.println(result + " Would you like to play again:");
String strHolder = keyboard.nextLine();
char repeatOption = strHolder.charAt(0);
iterations++;
} while(repeatOption == 'y' || repeatOption == 'Y');
所以游戲本身運行良好,但是當我進入詢問用戶是否想再次玩的程序的這一部分時,這發生在我的終端中:
Would you like to play again:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
因此,如您所見,程序跳過了用戶輸入,並且沒有“第一個字符”來設置 char repeatOption。 再次感謝您花時間閱讀此問題,我們將不勝感激任何支持。
掃描儀緩沖區不是空的(可能是新行字符),當您的程序試圖從用戶那里獲取輸入時,掃描儀正在從緩沖區中獲取值,並且 nextLine() 方法沒有返回任何內容。
可能的解決方案:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.