为了账号安全,请及时绑定邮箱和手机立即绑定

【JAVA小白】 关于已经赋值,但是系统说可能拿不到的值

【JAVA小白】 关于已经赋值,但是系统说可能拿不到的值

守着星空守着你 2019-03-10 14:29:33
代码如下:package com.helloworld;public class HelloWorld {         public static void main(String[] args) {                 int index;                //定义了一个变量index                  for (int i = 0 ; i < 10 ; i++) {                         if (i == 5 ) {                 index = i;     //当i等于5的时候,赋值给index             }                  }         System.out.println("index是" + index);                 //系统显示这里错误,但是我有点不明白,             //这个地方for循环已经结束,index是确定可以拿到值的,             //为什么错误呢     }      }只有把一开始的变量声明,int index 改成index index = 0 错误才消失。但是这个我有点不明白,我明明在里面赋值了,为什么是错的?
查看完整描述

2 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

java局部变量要先初始化才能用。。。

查看完整回答
反对 回复 2019-03-10
?
心有法竹

TA贡献1866条经验 获得超5个赞

因为编译器在检查的时候判断局部变量index可能未初始化,表达式i<10不是一个constant expression,编译器根据定义的rule无法确定index一定初始化了,所以编译器会提示“Variable index might not have been initialized”。具体可以参考《Java语言规范》的第16章“Definite Assignment”。

查看完整回答
反对 回复 2019-03-10
  • 2 回答
  • 0 关注
  • 819 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信