A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


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);
        }
}
为什么会出现错误?

11 个回复

倒序浏览
哥们,去复习一下变量
你得知道它的作用范围是{}
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报 1 0
因为放里面只能在当前花括号用,而不能在外边调用
回复 使用道具 举报
因为在if里定义的只在if语句里有效,出了if在无效了,当然打印不了了
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
aA772807986 发表于 2016-11-21 20:46
因为放里面只能在当前花括号用,而不能在外边调用

是不是外层变量可以在内层输出,也可以在外层输出,而内层变量只能在内层输出
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
不是不能定义  只是下面那个大括号就用不了呢
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
变量的作用范围的原因。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
杨森的安卓路 发表于 2016-11-21 21:18
是不是外层变量可以在内层输出,也可以在外层输出,而内层变量只能在内层输出
...

是的呢!
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
变量作用范围不同,全局变量和局部变量咋能一样。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
定义在外面是全局变量,定义到里面是局部变量,不一样的
回复 使用道具 举报
hlll 中级黑马 2016-12-7 00:12:45
11#
同学,万一a<b时咋办???
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
作用域,生命周期,百度一下 没必要这样水的 谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马