推 liu2007:token就是以空白、tab、\n 隔開的"單字" 06/27 15:29
→ kusoayan:那為什麼第一次執行到他時會返回true呢 ? 06/27 16:09
我寫了這樣測試
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext())
{
System.out.println("loop start");
System.out.println("%s",scanner,readLine());
System.out.println("loop end");
}
發現一執行 他就會等待輸入
輸入 input 後
output是
loop start
input
loop end
後來我又寫了一個只有兩行的
Scanner scanner = new Scanner(System.in);
scanner.next();
也是一樣一開始就在等待輸入
---
綜合以上兩點
我可以這樣解讀嗎 ?
scanner 物件有個類似constructor(建構子)等東西
會在執行 method 前建立一個類似暫存區的地方等待輸入
取得輸入後才按照程式碼的要求利用取得的輸入去執行某些 method ?
像是呼叫了 hasNext 就會先讓我輸入 輸入完才執行 hasNext
因為已經輸入內容了 所以hasNext就是 true
可是這樣講好像又怪怪的= =
因為我如果輸入 1 2 3
他就會分別跑出
1
2
3
然後再等待輸入
還是 scanner 會把被 read 或 next 之類 method 過的內容從輸入暫存區刪掉
如果輸入暫存區是空的 就要求使用者輸入內容 ?
請高手指點了~"~
※ 編輯: kusoayan 來自: 125.228.243.138 (06/27 16:39)