代码如下:
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 回答
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; //局部变量。 必须自己赋初始值,否则会报错。
}
}
添加回答
举报
0/150
提交
取消