do
{
ch = (char)System.in.read();
System.out.print(ch);
}while(ch != '\n');
我以爲這個循環會重複,直到我輸入一個新的行嗎?不知道我做錯了什麼,因爲它輸入一個字符後終止。不明白爲什麼這個java做循環不工作
do
{
ch = (char)System.in.read();
System.out.print(ch);
}while(ch != '\n');
我以爲這個循環會重複,直到我輸入一個新的行嗎?不知道我做錯了什麼,因爲它輸入一個字符後終止。不明白爲什麼這個java做循環不工作
輸入第一個字符後,while循環條件會成功,並等待來自do-while用戶的輸入。如果您現在按enter
它的一個新行字符,在這種情況下while條件失敗。簡而言之,您的代碼按預期工作。
測試:
aa(if you press enter key now)
while condition failed.
試試這個
而(!CH = 13);
13是的ASCI值進入
你的程序工作,但你的循環就在按之前進入沒有真正開始。
System.in.read
阻塞,直到在控制檯輸入換行符。所以,如果你按下鍵一個bÇ\ n,程序將停止在System.in.read()
直插,直到你按下進入(\n
)。
當輸入被按下時,您的程序將會啓動並向用戶回送該行。
原因是您的控制檯配置。通常情況下,終端處於「熟化」模式,這允許您使用退格鍵和編輯您輸入的字符。您還應該能夠在「原始」模式下設置控制檯(線路編輯繞過,不需要輸入密鑰)。這可能會產生你以後的結果。在UNIX系統上,'stty'命令可以改變模式。
in.read()它自動發生\ n'。當你輸入 – smk 2013-02-20 22:17:35
這可能很容易通過調試解決,甚至仔細查看輸出。 – 2013-02-20 22:19:26