-1应该是流结束吧, 作为控制台标准输入, 咋能弄到结束呢, 这个我也没想明白
不过如果你把标准输入重定位了, 比如System.setIn(new FileInputStream(new File("1.txt")));
那么当文件结束时, System.in.read() 就是 -1
Scanner cin = new Scanner(System.in);
int n=0;
//将输入的字符串转换为数字
n= Integer.parseInt(cin.next());
首先我们要理解System.in.read(); 的工作原理-->
当我们在屏幕中输入数据后,是直接放在缓冲区中,记录你每一次的输入!!
而System.in.read();的工作就是依次从这个缓冲区中读取下一个字符的ascii码!
比如现在我们在终端输入23,这样我们输出一下read()的值为50,而后我们再read()一次会是51,再read()一次就是13(回车键的ascii码值)了!! 这样我们就应该理解了~~ 呵呵 以前也搞错,现在借这问题学习了,好问题!