黑马程序员技术交流社区

标题: z 为什么一定要在if语句的外边定义,为什么不能在里边? [打印本页]

作者: 杨森的安卓路    时间: 2016-11-21 20:29
标题: z 为什么一定要在if语句的外边定义,为什么不能在里边?

class lianxi {
        public static void main(String[] args){
                int a=100;
                int b=20;
                int z;
                if (a>b) {
                        z=a;                       
                }else{
                        z=b;
                }
                System.out.println(z);
        }
}
z为什么一定要在if语句的外边定义,为什么不能在里边,像下边这样?
class lianxi {
        public static void main(String[] args){
                int a=100;
                int b=20;
                if (a>b) {
                        int z=a;                       
                }else{
                        z=b;
                }
                System.out.println(z);
        }
}
为什么会出现错误?
作者: zf2501    时间: 2016-11-21 20:34
哥们,去复习一下变量
你得知道它的作用范围是{}

作者: aA772807986    时间: 2016-11-21 20:46
因为放里面只能在当前花括号用,而不能在外边调用
作者: wqq1317    时间: 2016-11-21 20:55
因为在if里定义的只在if语句里有效,出了if在无效了,当然打印不了了

作者: 杨森的安卓路    时间: 2016-11-21 21:18
aA772807986 发表于 2016-11-21 20:46
因为放里面只能在当前花括号用,而不能在外边调用

是不是外层变量可以在内层输出,也可以在外层输出,而内层变量只能在内层输出

作者: 乌托邦619    时间: 2016-11-21 21:33
不是不能定义  只是下面那个大括号就用不了呢

作者: duanqichao    时间: 2016-11-21 21:38
变量的作用范围的原因。

作者: aA772807986    时间: 2016-11-21 22:35
杨森的安卓路 发表于 2016-11-21 21:18
是不是外层变量可以在内层输出,也可以在外层输出,而内层变量只能在内层输出
...

是的呢!

作者: 夜独醉    时间: 2016-11-21 23:04
变量作用范围不同,全局变量和局部变量咋能一样。

作者: whw_asd    时间: 2016-12-6 23:57
定义在外面是全局变量,定义到里面是局部变量,不一样的
作者: hlll    时间: 2016-12-7 00:12
同学,万一a<b时咋办???

作者: aaaadj    时间: 2016-12-7 09:23
作用域,生命周期,百度一下 没必要这样水的 谢谢




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