循环变量无法在循环后解析为变量

时间:2014-06-30 21:03:25

标签: java

import java.io.IOException;
import java.util.Scanner;

public class Chapter_3_Self_Test {
    public static void main (String args []) throws IOException {
        Scanner sc = new Scanner (System.in);
        char a;
        for (int counter = 0; a == '.'; counter++)  {
            a = (char) System.in.read();
        }
        System.out.println(counter);

    }
}

我是Java的初学者。 当我运行此代码时,我收到错误消息,计数器无法解析为变量。我该如何解决?我尝试将计数器转换为字符串,但这没有做任何事。

1 个答案:

答案 0 :(得分:9)

变量counter仅存在于循环范围内。为了在循环之后引用它,您需要在循环之外定义它:

import java.io.IOException;
import java.util.Scanner;

public class Chapter_3_Self_Test {
    public static void main (String args []) throws IOException {
        Scanner sc = new Scanner (System.in);
        int counter = 0;
        for (char a; a == '.'; counter++)   {
            a = (char) System.in.read();
        }
        System.out.println(counter);
    }
}

请注意,相反,char a可以在for循环的范围内声明,因为它不在循环之外使用。