java循环和IFT语句的装箱
这个代码示例应该在应用程序启动后大约一秒钟打印出文本“将永远不会被打印”,但是文本如何表示这永远不会发生
也许是因为我的方块打得不正确,但我不认为这是原因
class ThreadTest
{
public static boolean b = false;
public static void main(String args[]){
new Thread(){
@Override public void run(){
try{
Thread.sleep(1000);
}
catch(Exception e){}
b = true;
}
}.start();
while(true)
if(b)
{
System.out.println("will never be printed");
break;
}
}
}
请说这是否真的很疯狂,或者我只是犯了个大错误
看起来没人读过这个问题。问题是,行“永远不会被打印”应该在一秒钟后打印,但它不是。你们都只是在写一些和这个问题毫无关系的东西。 再说一遍:为什么不执行这一行
System.out.println("will never be printed");
# 1 楼答案
在这种情况下,他们是平等的。但后者更适合于可读性
就像:
但是
不是像:
# 2 楼答案
这两种情况是相同的,但如果你有,情况就不同了,例如:
相比于
当然,正如大家所说,第二个问题也更清楚。我建议你总是在它们自己的一行中使用“{”和“}”,在打开它们的语句的同一列中
例如:
像那样
不是
当然不是
# 3 楼答案
没有区别,但第二个更清楚
# 4 楼答案
在这种情况下,它们都是相等的,但我们更喜欢使用大括号,即使条件语句只有一条语句,以避免出现一些调试问题,这些问题可能会伴随非常小的错误
这样一来,第一个代码等于第二个代码
由于编译器会在编译时自动添加大括号,因此它会在反编译时成为您的第二个代码