我刚开始学习Java并学习它。我正在尝试一段代码,以了解for-each循环在Java中是如何工作的。但在这方面我遇到了一个问题。我的代码很简单:
class ForEach
{
public static void main(String[] args) throws java.io.IOException
{
char[] array = new char[10];
for(int i = 0; i < 10; i++)
{
System.out.println("Enter Character " + i);
array[i] = (char)System.in.read();
}
System.out.println("Displaying characters in array : ");
for(char i : array)
{
System.out.println(i);
}
}
}但是输出是很尴尬的。我肯定我的代码有问题。我找不到它。此代码的输出是:
Enter Character 0
a
Enter Character 1
Enter Character 2
Enter Character 3
b
Enter Character 4
Enter Character 5
Enter Character 6
c
Enter Character 7
Enter Character 8
Enter Character 9
d
Displaying characters in array :
a
b
c
d我不明白为什么for循环在接受用户的另一个输入之前运行三次?
有什么帮助吗?提前谢谢你。
发布于 2014-05-18 08:53:11
来自Java
从输入流读取下一个字节的数据。
当您键入a,后面跟着换行符时,实际上有三个字节要读取(我猜a后面是回车和换行符)。因此,您提供的输入足以让read()运行三次迭代。
我建议您使用Scanner进行输入阅读。
https://stackoverflow.com/questions/23720118
复制相似问题