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

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

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

拉莫斯之舞 2019-01-17 00:56:38
代码如下: 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 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

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

查看完整回答
反对 回复 2019-03-01
?
HUWWW

TA贡献1874条经验 获得超12个赞

(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-01
  • 2 回答
  • 0 关注
  • 445 浏览

添加回答

举报

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