アサドMehmood:
私はそれが「C」または「C」ループからの出口に等しい場合、私は、ユーザー、チェックからの入力を取るO-whileループのコードを書きます。CまたはC以外の入力は、私はちょうど任意の文字は、ブロックの内側の文が2回なぜ表示されません押さずにプレスを入力すると、3回に登場されDOブロックの内部の文を入力した場合は?誰も説明できます
int ch = 0;
do {
System.out.println("Press C or c to continue.");
ch = System.in.read();
}
while(ch !='C' && ch !='c');
スイーパー:
(あなたが説明した出力から判断すると、あなたは、Windowsマシン上でおそらく正しいですか。)
read
入力ストリーム内の次の文字を返します。あなたがCまたはcを入力し、Enterキーを押しますときに、あなたは、実際には3つの文字を入力しました:
c
\r
\n
最後の2つの文字が一緒に新しい行を表す、Windowsの方法です。読むには3つの文字があるので、read
あなたは再び何かを入力するように要求される前に3回呼び出されるので、println
同様に3回呼び出されます。
あなただけのプレスを入力した場合は、2文字のみを入力しました:
\r
\n
ので、2本の線が印刷されています。
これを修正するには、使用することができますjava.util.Scanner
。Scanner
呼ばれる素敵な方法があるnextLine
ことが改行文字に到達するまで、ユーザが入力するすべてのものを返します。
Scanner sc = new Scanner(System.in);
String line = "";
do {
System.out.println("Press C or c to continue.");
line = sc.nextLine();
}
while(!ch.equals("C") && !ch.equals("c"));