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

【JAVA小白】 问关于变量一开始没有赋值结果错误的疑问

【JAVA小白】 问关于变量一开始没有赋值结果错误的疑问

慕田峪4524236 2019-03-10 14:29:58
代码如下: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);                 //系统显示这里错误,但是我有点不明白,             //不是明明已经给index复制了么,为什么错误         }              }      }只有把一开始的变量声明,int index 改成index index = 0 错误才消失。但是这个我有点不明白,我明明在里面赋值了,为什么是错的?
查看完整描述

2 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

使用时"有可能"未被赋值就是编译错误. 编译器的控制流分析不够就是这样了

查看完整回答
反对 回复 2019-03-10
?
汪汪一只猫

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

(1)在java中,类的成员变量不用初始化即可直接使用,JVM会自动初始化,原始变量如int char short long byte初始化为0,float double初始化为0.0,boolean初始化为false,对象初始化为null。

(2)在方法内的变量是局部变量,JVM不会给其分配默认值,局部变量必须要我们为其赋初始值,否则将得到编译错误的提示。

class A{    int i;  //成员变量,JVM自动初始化为0
    public static void main(String[] args) {        int j = 0; //局部变量。 必须自己赋初始值,否则会报错。
    }
}


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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号