3 回答

TA貢獻(xiàn)143條經(jīng)驗 獲得超39個贊
?while(sc.hasNext()) //循環(huán),當(dāng)掃描到下一個元素的時候 這個有問題?
你改成while(true) 都可以

TA貢獻(xiàn)883條經(jīng)驗 獲得超454個贊
while 后面小括號中需要是 boolean 類型,當(dāng)值為 true 時才會執(zhí)行 while 循環(huán)體。所以那個 true 就是 boolean 類型值?。?這樣寫 while 就會一直循環(huán)下去。
如我前面解釋的,while (sc.hasNext()) 會等待你輸入了之后才會開始執(zhí)行 while 循環(huán)體,所以在你輸入之前,程序沒有任何顯示。
而 while (true) 會直接開始執(zhí)行循環(huán)體。這樣即便你什么也不輸入,至少也會看到打印出"請輸入一個數(shù):"
通常,用 while 來循環(huán)處理 Scanner 時,小括號中表達(dá)式更多地使用的是 hasNext 系列。
還有,Scanner 對象在使用結(jié)束后要記得調(diào)用 close() 來關(guān)閉。

TA貢獻(xiàn)883條經(jīng)驗 獲得超454個贊
這個代碼確實沒有什么大錯誤。
只是有一點:因為 while 中循環(huán)條件用的是?sc.hasNext(),所以在你輸入之前,while 都會卡在這里等待你的輸入。這樣一來,只要你不輸入,程序就會等待...
添加回答
舉報