在定义的时候初始化一下:
int chiid = 0;

解决方案 »

  1.   

    System.out.println(chiid);
    }
    System.out.println(chiid);                 //没有这句,就没错。加入这一句后,编译就出错了,
    前一个System.out.println(chiid);没错,是因为chiid在try被赋值了,而后一个chiid被有被赋值,是空的。在前面int chiid=1;应该就不会出现错误了!!
      

  2.   

    难道这两个chiid不一样吗?我的本意就是要从数据库中取出,然后拿来用的。
      

  3.   

    我知道你的意思try里chiid是被赋值过的,就是chiid = rs.getInt(3) + 1;因为在try{}里面,它的作用域限制在try里!错误的那句是因为chiid没有被赋值了!
      

  4.   

    非常感谢,那外面的chiid有没有被赋值了?就是我这样写有没有逻辑错误,外面的chiid有没有得到数据库里的值?
      

  5.   

    外面的chiid没有被赋值了!也没得到数据库的值。所以叫你前面定义变量的时候初始化int chiid = 0;
      

  6.   

    可是我想要里面数据库读出的值怎么办,去掉try吗?还是有其他办法?
      

  7.   

    局部变量在使用前一定需要初始化.你只需要初始化既可.
    运行到这里时已经是数据库的值了.System.out.println(chiid);
      

  8.   

    不用,你不是已经读到值了吗??搞不懂你为什么要out.println两次,总之在前面int chiid = 0
    ; 就没错了!