簡體   English   中英

java的while循環錯誤? 附加輸出代碼有什么問題?

[英]java while loop error? additional outputs what is the wrong with the code?

class demoWhile{        
public static void main(String args[])
    throws java.io.IOException{
        char ch = (char)System.in.read();
        while(ch!='w'){
            System.out.println("Hi"+ch);
            ch = (char)System.in.read();
        }
    }
}

-首先,我給輸入一個“ r”,預期的輸出是“ Hir”,然后是輸入選項,但是收到的輸出是Hir,Hi,Hi,然后是輸入選項。 為什么顯示兩個額外的嗨,嗨?

我懷疑您是在Windows計算機上運行此程序,並在“ r”后按Enter。 如果不是這種情況,請忽略此答案。

輸入被理解為換行符,由Windows上的兩個字節0D 0A組成。 在字符串文字中,這些通常表示為"\\r\\n"

這將導致讀取三個字符:“ r”,“ \\ r”(字符13)和“ \\ n”(字符10)。

您的代碼分別處理它們,因此輸出為

Hir
Hi\r
Hi\n

但是\\ r和\\ n不會顯示,因為當您組合它們時,它們僅在Windows上起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM