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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 花心々小土豆 中级黑马   /  2013-6-8 18:20  /  3966 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 花心々小土豆 于 2013-6-9 16:13 编辑

这程序超简单,就是变量作用域的问题。
看下结果,各位有啥能解释的吗?

QQ图片20130608181610.jpg (15.27 KB, 下载次数: 0)

用C++写的

用C++写的

QQ2.jpg (29.58 KB, 下载次数: 0)

用Java写的

用Java写的

评分

参与人数 1技术分 +1 收起 理由
黑马伍哲沂 + 1 神马都是浮云

查看全部评分

9 个回复

倒序浏览
JAVA中重复定义了x导致出错,你可以把第二个x换掉
回复 使用道具 举报
x只能定义一次,把作用域中的int去掉不就行啦
回复 使用道具 举报
楼上的没注意到楼主的意思吗??哈哈
回复 使用道具 举报
本帖最后由 weamer6411 于 2013-6-8 20:48 编辑

我觉得这个问题有深度,我也想知道java是出于什么目的,将c/c++中的这个语法特性作了限制。补充:我觉得大致上可以这么认为:在作用域嵌套问题上,java作了严格的限制,不允许多个嵌套的作用域中变量的名字相同。至于为什么不允许(原则上应该是可以的)?我想估计是c/c++程序员在写程序的时候在这个问题上老出现问题,java为了提高代码的可读性和程序安全性,便作了作用域嵌套的限制规则。

点评

同感!!!  发表于 2013-6-8 20:48

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报 1 0
楼主你好  如果帖子的问题已经解决,请把帖子的类型改为“已解决”。{:soso_e102:}
回复 使用道具 举报
weamer6411 发表于 2013-6-8 20:03
我觉得这个问题有深度,我也想知道java是出于什么目的,将c/c++中的这个语法特性作了限制。补充:我觉得大 ...

貌似可以这么解释,这样挺好理解的e
回复 使用道具 举报
weamer6411 发表于 2013-6-8 20:03
我觉得这个问题有深度,我也想知道java是出于什么目的,将c/c++中的这个语法特性作了限制。补充:我觉得大 ...

正解! 我在《Java编程思想》里看到这么解释的:Java设计者认为这样做会导致程序混乱,不允许将一个较大作用域的变量“隐藏”起来。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马