//判斷用戶為奇偶數??Scanner sc=new Scanner(System.in);??????while(sc.hasNext()){//循環,當掃描到下一個元素的時候???System.out.println("請輸入一個數:");???int s=sc.nextInt();???if(s==0){????break;???????}else{????if(s%2==0){?????System.out.println("是偶數");????}else{?????System.out.println("是奇數");????}???}??????}?????}
3 回答

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

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