黑马程序员技术交流社区

标题: 学过C和C++的伤不起啊! [打印本页]

作者: 花心々小土豆    时间: 2013-6-8 18:20
标题: 学过C和C++的伤不起啊!
本帖最后由 花心々小土豆 于 2013-6-9 16:13 编辑

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

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

用C++写的

用C++写的

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

用Java写的

用Java写的

作者: 穆玉明    时间: 2013-6-8 18:34
JAVA中重复定义了x导致出错,你可以把第二个x换掉
作者: 萧萧北    时间: 2013-6-8 19:04
x只能定义一次,把作用域中的int去掉不就行啦
作者: 黑马一刘昭    时间: 2013-6-8 19:43
楼上的没注意到楼主的意思吗??哈哈
作者: weamer6411    时间: 2013-6-8 20:03
本帖最后由 weamer6411 于 2013-6-8 20:48 编辑

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

作者: 袁梦希    时间: 2013-6-9 14:55
楼主你好  如果帖子的问题已经解决,请把帖子的类型改为“已解决”。{:soso_e102:}
作者: x.love    时间: 2013-6-9 15:32
weamer6411 发表于 2013-6-8 20:03
我觉得这个问题有深度,我也想知道java是出于什么目的,将c/c++中的这个语法特性作了限制。补充:我觉得大 ...

貌似可以这么解释,这样挺好理解的e
作者: 花心々小土豆    时间: 2013-6-9 16:13
weamer6411 发表于 2013-6-8 20:03
我觉得这个问题有深度,我也想知道java是出于什么目的,将c/c++中的这个语法特性作了限制。补充:我觉得大 ...

正解! 我在《Java编程思想》里看到这么解释的:Java设计者认为这样做会导致程序混乱,不允许将一个较大作用域的变量“隐藏”起来。




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