Javaの入力について少し問題があります。 私のコードは推測の文字ゲームです(私は本からそれを読んでいます)。 私のコードです。Javaでバッファされた行は何ですか?
public class Guess4 {
public static void main(String args[])
throws java.io.IOException{
char ch, ignore, answer = 'K';
do{
System.out.println("I'm thinking of a letter between A and Z.");
System.out.print("Can you guess it : ");
ch = (char) System.in.read();
do{
ignore = (char) System.in.read();
}while(ignore != '\n');
if(ch == answer) System.out.println("** Right **");
else{
System.out.print("...Sorry, you're ");
if(ch<answer) System.out.println("too low.");
else System.out.println("too high.");
System.out.println("Try again!\n");
}
}while(answer != ch);
}
このコードブロックが必要な理由はわかりません。
do{
ignore = (char) System.in.read();
}while(ignore != '\n');
このブロックが削除されたとき。出力は異なって出ました。
この本はバッファローされた行について何か言ったが、私はまだ理解していない。 バッファリングされた行は誰でも説明できますか?
ありがとうございます。
'ignore'変数はまったく必要ありません。 'while(System.in.read()!= '\ n')'を使用することができます。 – Bubletan
@Bubletanあなたは技術的に正しいですが、変数名は何が起こっているかのヒントを与えます。もちろんこれはコメントで表現することもできます。 – Henry
@Henry私は、コメントが間違いなくスコープの外のどこかで宣言された変数のよりよい選択肢だと言います。 – Bubletan