我有以下采用字符串输入行的方法,将它们添加到列表中,然后首先打印偶数行,然后打印奇数行。问题是它只打印偶数行,而不继续打印奇数行。解决方案似乎很简单,但是我看不到if / else语句出什么问题会导致此问题。
public static void printLines(BufferedReader r, PrintWriter w) throws IOException {
//first prints even lines then odd lines
ArrayList<String> list = new ArrayList<String>();
int x = 0;
for (String line = r.readLine(); line != null; line = r.readLine()) {
list.add(line);
x++;
}
for (int i = 1; i < list.size(); i++){
if (i%2 == 0 && x < 1){
w.println(list.get(i));
x++;
}
else if (i%2 == 1 && x >= 1)
{
w.println(list.get(i));
}
}
}
让循环迭代处理它,而不是在循环中处理算术:
for (int i = 1; i < list.size(); i+=2)
w.println(list.get(i));
for (int i = 0; i < list.size(); i+=2)
w.println(list.get(i));
我建议您删除x变量并使用list.size()代替
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句