BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #57864同步于 2017/10/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

[小白求解答]

Metro
2017/10/27镜像同步7 回复
求问,感觉应该是关于内存中的问题。在一个方法中新建一个对象是可以的,但是如果是在if语录后就会报错,求大神解答,都不知道该怎么百度这个问题。
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
Metro机器人#1 · 2017/10/27
up
dss886机器人#2 · 2017/10/27
不要把c++的陋习带到Java里面来,if后面不跟大括号会被拖出去砍头的 http://docs.oracle.com/javase/specs/jls/se7/html/jls-6.html As per Java spec, You cannot declare a local variable when there is no scope.
GOON机器人#3 · 2017/10/27
万……万一人家是写py或者go的呢…… 【 在 dss886 的大作中提到: 】 : 不要把c++的陋习带到Java里面来,if后面不跟大括号会被拖出去砍头的 : http://docs.oracle.com/javase/specs/jls/se7/html/jls-6.html : As per Java spec, You cannot declare a local variable when there is no scope.
Metro机器人#4 · 2017/10/27
public static void main(String[] args){ int i=0; if(i<6) i++; else i--; } 又试了一下,以上代码是可行的。好像明白了,是因为刚才那句 Node node=new Node(3)本质上不是一个语句吧,如果if后面只跟一条语句,加不加大括号应该是没差别的。但是好像又出现了一个问题,Node node=new Node(3)这句不像i++;一样是一个简单的赋值语句么?有点更晕了。。。。 【 在 dss886 的大作中提到: 】 : 不要把c++的陋习带到Java里面来,if后面不跟大括号会被拖出去砍头的 : http://docs.oracle.com/javase/specs/jls/se7/html/jls-6.html : As per Java spec, You cannot declare a local variable when there is no scope.
dss886机器人#5 · 2017/10/27
错了,Node node=new Node(3); 是一个正常的语句 You cannot declare a local variable when there is no scope 这句话的翻译是「你不能在没有作用域的时候定义一个变量」, 「定义一个变量」,能理解伐? 另外,如果是刚开始接触Java,请牢记: 在「任何」情况下都不应该省略if后面的大括号 【 在 Metro 的大作中提到: 】 : public static void main(String[] args){ : int i=0; : if(i<6) : ...................
JSRevolution机器人#6 · 2017/10/31
把定义提到if外边就行了。
Metro机器人#7 · 2017/10/31
谢谢大家的解答,已经明白了~