为什么我的Java while循环迭代了一半
//some code here
String x;
while ((x = inputStream.readLine()) != null) {
System.out.println(inputStream.readLine());
}
inputStream.close();
}
您好,我是Java初学者,我的while循环应该提供类似于
的输出
aaasd1
aaasd2
aaasd3
aaasd4
aaasd5
aaasd6
但是它给出了
aaasd2
aaasd4
aaasd6
当我将println更改为System.out.println(x);
时,它将提供它应该提供的输出。有人知道问题出在哪里吗。谢谢你的帮助
# 1 楼答案
这段代码:
读取下一行并将其存储在
x
。但是你永远不会使用x
。相反,您可以这样做:它读取存储在
x
中的之后的下一行,并将其打印出来。替换为:这将打印出您刚才在循环条件中读取的行
# 2 楼答案
在第一个示例中,调用
readLine()
两次,但仅每秒打印一次值。也就是说,不会打印在while
表达式中分配给x
的值。使用System.out.println(x);
时,打印每个值# 3 楼答案
每次调用
inputStream.readLine()
时,读取一行并将文件指针前进到下一行,由于执行了两次,一次在while loop
头中,一次在打印时,因此只打印第二行。改为打印x