黑马程序员技术交流社区
标题:
关于定义变量的疑惑
[打印本页]
作者:
高俊杰
时间:
2012-9-13 21:51
标题:
关于定义变量的疑惑
本帖最后由 cooldog101 于 2012-9-13 22:50 编辑
之前学习定义变量必须给变量进行初始化赋值,但下面的代码没有给变量进行初始化,为什么也能
运行,没有报错。
定义变量格式:数据类型 变量名 = 初始化值;例如:int x = 3;
class Exercise {
public static void main(String[] args) throws Exception {
int x; //
此处定义了变量x,但并没有给x进行初始化。
do {
x = System.in.read();
} while(x != 'q');
}
}
作者:
杨震
时间:
2012-9-13 22:02
没有初始化是可以的,但是如果你没有初始化然后也没有赋值最后使用了它那是不行的
你这个是没有初始化,但接着已经x = System.in.read()赋值了,然后去使用是没有问题的.
作者:
程金
时间:
2012-9-13 22:03
本帖最后由 程金 于 2012-9-13 22:38 编辑
刚没看清题目,说错了,不好意思
作者:
孙岳
时间:
2012-9-13 22:14
int x;
x = 2;
这样跟int x = 2;是一样的。所以
class Exercise {
public static void main(String[] args) throws Exception {
int x; //此处定义了变量x,但并没有给x进行初始化。
do {
x = System.in.read();
//此处第一次执行,给x赋值,相当于初始化了。
} while(x != 'q');
}
}
作者:
任艳旭
时间:
2012-9-13 22:20
成员变量不赋值,会自动初始化,可以直接使用。
局部变量不初始化,直接使用就会报错,
但是你的代码,开始定义了,然后下面的代码就赋值了,所以程序不会报错!
作者:
尤圣回
时间:
2012-9-13 22:23
因为他在存在堆内存中中 而且你变没有实用 x = System.in.read(); 对象就已经被初始化了
作者:
杨卫腾
时间:
2012-9-13 22:35
定义变量格式:数据类型 变量名 = 初始化值;例如:int x = 3;
class Exercise {
public static void main(String[] args) throws Exception {
int x; //此处定义了变量x,但并没有给x进行初始化。
do {
x = System.in.read(); //在这里进行了初始化,这里要是不进行初始化的,你的程序就不会编译通过的。
} while(x != 'q');
}
}
局部变量必须要进行初始化的,否则编译失败。
成员变量可以不进行初始化,系统会默认进行初始化的。
作者:
高俊杰
时间:
2012-9-13 22:49
杨震 发表于 2012-9-13 22:02
没有初始化是可以的,但是如果你没有初始化然后也没有赋值最后使用了它那是不行的
你这个是没有初始化,但 ...
大概明白了,定义变量没有初始化,不调用就不会报错;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2