黑马程序员技术交流社区

标题: 输出语句放大括号里边行,外边就不行了 [打印本页]

作者: 杨森的安卓路    时间: 2016-11-21 21:38
标题: 输出语句放大括号里边行,外边就不行了
(1)class lianxi {
        public static void main(String[] args){
                int a=100;
                int b=20;
                int z;
                if (a>b) {
                        z=a;               
                        System.out.println(z);       
                }
               
               
        }
}
(2)外边就会提示没有初始化变量
class lianxi {
        public static void main(String[] args){
                int a=100;
                int b=20;
                int z;
                if (a>b) {
                        z=a;                               
                }
                System.out.println(z);               
        }
}
这是为什么呢?   
作者: zf2501    时间: 2016-11-21 21:44
本帖最后由 zf2501 于 2016-11-21 21:46 编辑

局部变量在使用之前必须赋值,int z=0;再试试

作者: 杨森的安卓路    时间: 2016-11-21 22:02
zf2501 发表于 2016-11-21 21:44
局部变量在使用之前必须赋值,int z=0;再试试

前边那个也没赋值啊。也有输出

作者: 杨森的安卓路    时间: 2016-11-21 22:06
杨森的安卓路 发表于 2016-11-21 22:02
前边那个也没赋值啊。也有输出

应该是路线不同的原因吧

作者: zhy20160915    时间: 2016-11-21 22:30
局部变量得原因。

作者: zf2501    时间: 2016-11-21 22:34
zhy20160915 发表于 2016-11-21 22:30
局部变量得原因。

源哥,晚上好

作者: zhy20160915    时间: 2016-11-21 22:35
zf2501 发表于 2016-11-21 22:34
源哥,晚上好

小伙子。٩(๑òωó๑)۶

作者: zf2501    时间: 2016-11-21 22:36
杨森的安卓路 发表于 2016-11-21 22:02
前边那个也没赋值啊。也有输出

前面那个 z=a的时候就已经赋值了

作者: 1413157322    时间: 2016-11-21 22:38
1,首先,局部变量在使用前必须赋值;
作者: 1413157322    时间: 2016-11-21 22:42
1.首先,局部变量在使用前必须赋值;
2.第一个输出语句紧跟着z的赋值语句,所以在使用前z已经赋值,故不报错;
3.第二个以为赋值语句放在if条件语句里面,当条件不成立时,z就没有赋值了,所以报错;
作者: zf2501    时间: 2016-11-21 22:43
zhy20160915 发表于 2016-11-21 22:35
小伙子。٩(๑òωó๑)۶

源哥,有何吩咐~

作者: zhy20160915    时间: 2016-11-21 23:23
zf2501 发表于 2016-11-21 22:43
源哥,有何吩咐~

过来。(ง •̀_•́)ง

作者: zf2501    时间: 2016-11-21 23:23
zhy20160915 发表于 2016-11-21 23:23
过来。(ง •̀_•́)ง

我过来了,你洗干净没得

作者: zhy20160915    时间: 2016-11-21 23:26
zf2501 发表于 2016-11-21 23:23
我过来了,你洗干净没得

洗白白了得。( ^_^)/

作者: zf2501    时间: 2016-11-21 23:30
zhy20160915 发表于 2016-11-21 23:26
洗白白了得。( ^_^)/

你个没良心的,洗得白白的,是不是又要出去勾搭小白脸

作者: dahei    时间: 2016-11-21 23:47
定义变量其实是两步   int  x;   x=5;
作者: mjchzhl    时间: 2016-11-22 00:38
先定义后使用,局部和全局的区别吧





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2