if(true)
int i=0;
//-------------
if(true){
int i=0;
}有啥区别么!!! 

解决方案 »

  1.   


    if(true){
        int i = 0;
        int j = 1;
    }
    //----------
    if(true)
        int i = 0;
    int j = 1;上面的两句都要条件成立才执行,下面的只有int i = 0;是在条件成立时执行,int j = 1;不管条件是否成立都执行
      

  2.   

    没有区别,
    if(true)
    int i=0; //单条语句
    //-------------
    if(true){
    int i=0; //语句组
    }为了清晰起见,推荐if() {}写法!
      

  3.   

    if不加括号 只执行跟着的第一句话 后面的程序相当于跳出判断语句
    if加括号 执行完括号中的代码才会继续执行
      

  4.   

    写法上,if(表达式){
      to do xxx;
    }
    这种更为易读,且不容易失误!
      

  5.   

    这个问题可没看上去那么简单哦!第一种写法在编译时会出错。因为 Java 语言规范规定局部变量的声明的作用范围是在一个块内,也可以理解为在“{ }”内,参考 Java Language Specification, 3rd ed., 14.4.2.http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.4.2根据 JSL 14.2 块语句语法规则,JLS 14.5 语句语法规则,以及 if, while, for 的语法规则,其中的语句可以不写 { },但仅限于执行语句(其中并不包括变量声明语句)。因此第一种写法是错误的,在编译时会报错。为了避免引起不必要的麻烦,不管语句只有一行还是多行,都加上 { }。
      

  6.   

    在if … else、while、do … while、for语句中,如果只有一条语句,且这条语句又是定义变量的语句,那么要加大括号,否则编译报错。
      

  7.   

    if(true)
    int i=0;
    //-------------
    if(true){
    int i=0;
    }
    其中if(true)都是条件语句    int i=0 是条件体
    加了{}看起来更专业,更清晰,明白了吧
    我就想要一点点分就行了,谢谢
      

  8.   

    if不加括号 只执行跟着的第一句话 后面的程序相当于跳出判断语句 
    if加括号 执行完括号中的代码才会继续执行
    建议用第2种做法,这样更加清晰些
      

  9.   

    谢谢火龙果  虽然不明白为什么!  至少可以理解成java 语言规范  老师也没跟我们说过