ABC.java:9: variable c might not have been initialized
          System.out.println(a+","+b+","+c);
                                         ^
1 error

解决方案 »

  1.   

    public class ABC
     {
        public static void main(String[] args)  
        {      
              int a = 0, b = 0, c = 0;      
              if(true)         a = 2;
              if(2 == 2)       b = 2;
              if(b == 2)       c = 2;      
              System.out.println(a+","+b+","+c);  
        }

    2,2,2这是三个基本类型,可以用==比较值
      

  2.   

    报错:局部变量c可能未初始化
    if(2 == 2)  c = 2;
    if(true)  c = 2;
    则可以通过,原因自己领会吧
      

  3.   

    freejob(我怕) :变量的初始化前,设置条件应注意什么?
    作为基本类型变量,java会自动初始化为0的呀?当然其它类型变量必须初始化后才能调用。
    谢谢指教!!
      

  4.   

    自动初始化和是不是基本类型无关,
    而是看他是局部变量还是类的数据成员。
    如果是类的成员:初始化时基本类型会有固定值,而对象会为NULL。
    好像是吧 呵呵。。
      

  5.   

    agree m_catfish(小胖)只有类的成员才会自动初始化
      

  6.   

    public class ABC
    {
    int a;
    public static void main(String[] args)  
    {      
    int  b;
    ABC inst = new ABC();
    System.out.println(inst.a);
    System.out.println(b);
    }
    } D:\test>javac ABC.java
    ABC.java:9: variable b might not have been initialized
                    System.out.println(b);
                                       ^
    1 error其实你看上面这个例子就清楚了,是类的域变量(a)的时间,在类分配空间的时间也给域变量分配也就是说默认初始化。而作为函数的变量,如上面的b是要求初始化的
      

  7.   

    上面的a是在new ABC()的时间初始化的