FilipKovac:
私は、このようにそれを実行しようとしました、そして、それは働いていません。
try (Reader reader = new BufferedReader(new InputStreamReader(System.in))) {
Stack<Character> stack = new Stack<>();
int i = reader.read();
while(i != -1) {
System.out.println("i = " + i + " = " + (char) i);
stack.push((char) i);
i = reader.read();
}
while(!stack.empty()) {
System.out.print(stack.pop());
}
}
それはしばらく(I!= -1)ループに入ったら、それが無限ループに入りました。私は、私が見つけた、プログラムいったんテキストの最後に到達したこと、が分かった最後のI = 10しかし、Javaドキュメント内Reader.read()は、ファイルの終わりに達すると、それは返すべきだと-1。ことは、私は、(i!= 10)間でループを終了することができますが、私はそれが10を返す、といない理由を-1知りたいです。答えてくれてありがとう
ジェイソン:
場合、これはチェックすることによって固定することができるiが 10に等しくない場合(線の端部がASCIIです)。私たちは、「ABC」のような入力を提供し、私たちが実際に提供しているエンターキーを押したときのn \ ASCを。あれば、我々は確認した場合のn \提供されている(10)私たちはループから抜け出すことができます。
while (i != -1 && i != 10) {
}