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

代码如下:

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 错误才消失。
但是这个我有点不明白,我明明在里面赋值了,为什么是错的?

拉莫斯之舞
浏览 446回答 2
2回答

慕的地6264312

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

HUWWW

(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; //局部变量。 必须自己赋初始值,否则会报错。 } }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java