循环的次数总比 给的 n 小一。。。。
求大神指教
你最开始输入的是 4+“回车”
但是nextInt() 指读取了 4,导致缓存区中残留了一个 “回车”
所以系统认为后来你的操作是 “回车” ,“asdf回车”,“asdf回车”,“fdsa回车”
相当于第一个字符串输入的是空字符
最后要说的是nextInt()和nextLine() 有一点不同就是,nextInt不吃回车 nextLine吃回车
你在你的in.nextInt()后再加一个in.nextLine()试一下.关键在于nextLine和其它next的区别,你自己试一下印象最深。
当你输入4,,敲回车后,,后面的回车也算一个字符,,第一个nextLine()会吧这个字符吃掉,
所以,,你只能输入三个,,懂了吧,
所以
看这里多了一个回车,,这就是你第一个nextLine的内容
还需要多解释???追问吧,,,,对你有帮助了,采纳把,
是循环了三次,但是第一次读的是一个空行,你调试运行就能看出来,
解决方案
in.nextLine();
for (int i = 0;i < ssr.length;i++ ) {
ssr[i] = in.nextLine() ;
}
在进入循环前,把空行先读了。
注意在你in.nextInt()方法之前,已经循环遍历了一个一字节
为什么答的都那么好 啊!!!
为什么只能采纳一个啊!!!
楼上的各位都谢谢了!!!