if(true){
  boolean d=true;   
}
  这句和
if(true)
  boolean d=true;
这两句为什么不是等价的(后者有编译错误)

解决方案 »

  1.   

    第二句应该等价于:
    boolean d=true;
    if(true) //缺少if后面的语句
    所以编译器报错.
      

  2.   

    语法问题:
    boolean d
    if(true)
    {
      d=true;   
    }

    boolean d
    if(true)
      d=true;是等价的
      

  3.   

    谢谢稻草人和铁桶师傅
    我还是不太明白
    稻草人说
    〉第二句应该等价于:
    〉boolean d=true;
    其实第二句中的true换为false也一样啊
      

  4.   

    if(true)boolean d=true;和if(true){boolean d=true;}在有些地方是等价的,要看上下文程序吧,呵呵
      

  5.   

    呵呵 我的意思可能你理解错了。
    我是说:
    if(true)
      boolean d=true;  //yours等价于我的这个写法:
    boolean d=true;
    if(true) //编译器在这个地方找不到if后面的语句所以会报错。你虽然在if(true)后面写了 boolean d=true;但这实际是在定义一个变量,这样的语句如果在函数内(不考虑它的生命周期)你可以放到函数体内的任何地方。
    我的写法你可以很容易看出if后面缺少语句,所以编译器报错。