我目前正在开发一个程序,用于检查文本文档中的每一行,并对其进行相同的修改。然而,for循环只循环一次而不是所需的5次。下面是代码中无效的部分。
//I think this part is correct but I decided to include it just in case.
Scanner infile = null;
try {
infile = new Scanner(new File("solution.txt"));
} catch(FileNotFoundException e) {
System.out.println(e);
System.exit(0);
}
for(int i = 0; i < 5; i++);
{
s = infile.nextLine();
System.out.println(s);
System.out.println("LOOP"); //Just a debug test
}
infile.close();
此代码的输出如下:
define 88 as INT
LOOP
它应该是:
define 88 as INT
LOOP
define 89 as INT
LOOP
define 90 as INT
LOOP
define 91 as INT
LOOP
define 92 as INT
LOOP
答案 0 :(得分:3)
删除分号:
for(int i = 0; i < 5; i++);
is valid之后的代码本身,因此单独运行一次。
{
s = infile.nextLine();
System.out.println(s);
System.out.println("LOOP"); //Test system out
}
答案 1 :(得分:0)
您需要在for循环结束时删除; 。
您使用的for循环代码
for(int i = 0; i < 5; i++);
{
s = infile.nextLine();
System.out.println(s);
System.out.println("LOOP"); //Test system out
}
等于以下代码:
for (int i = 0; i < 5; i++) {
}
s = infile.nextLine();
System.out.println(s);
System.out.println("LOOP"); // Test system out
这就是为什么只从纯文本文件中读取第一行内容。
您最好使用 infile.hasNext()来检查是否有任何内容。然后阅读它。喜欢
while (infile.hasNext()) {
s = infile.nextLine();
System.out.println(s);
System.out.println("LOOP"); // Test system out
}