黑马程序员技术交流社区

标题: if() 加大括号 和不加大括号有什么区别? [打印本页]

作者: 墓____夜    时间: 2014-5-26 23:57
标题: if() 加大括号 和不加大括号有什么区别?
if(   ){
    //内容
}

if()
  //内容

他们之间有什么区别?
应该注意哪些问题?
作者: 屋檐下的期待    时间: 2014-5-27 00:53
加 大括号是表示 满足 小括号中条件时执行的。  而不加 大括号,则表示默认的满足条件时,执行后面的第一句话。以分号结束。
if(   ){
    表达式1;
  表达式2;
  表达式3;
  表达式4;
}
表达式1,2,3,4 都会执行的。
而不加
if()
  表达式1;表达式2;
表达式3;
表达式 2,3  都不会执行的。因为不是后面第一句。

作者: hamiguadjs    时间: 2014-5-27 01:18

  1.         public static void main(String[] args) {
  2.                 //关于if语句带括号和不带括号的区别
  3.                 int i = 0
  4.                 //带括号的if语句
  5.                 if (i == 0) {
  6.                         System.out.println("if语句内的第一条语句");
  7.                         int x ;
  8.                         x = 10;
  9.                         System.out.println(x);
  10.                 }
  11.                 //带括号的语句在if语句为true的时候,执行条件语句中的语句,否则,不执行。
  12.                
  13.                 //不带括号的语句
  14.                 if(i == 0)
  15.                 System.out.println("if语句内的第一条语句");
  16.                 int x;
  17.                 x = 10;
  18.                 System.out.println(x);
  19.                 //以上语句中如果条件表达式是true,则只执行输出语句,而以下的语句在判断语句结束后继续执行,和if语句wuguan
  20.                
  21.                 if(i == 0)
  22.                 int y = 1; //编译错误,因为该语句是两条 语句,即int y; y = 1;
  23.                 //总结:使用无括号的条件语句只能执行第一条语句,第一条语句必须是单条语句。
  24.                
  25.         }
复制代码

作者: 彭旭文    时间: 2014-5-27 01:22
简单点:有括号的话,if语句控制{}里面的所有语句,没括号的话,if语句只控制最近的一行。
例如:if(a==ture)
              {
               System.out.println("Hello,黑马!我来了!");
               System.out.println("Welcome");
               }
当条件成立时,程序会读取括号里面的两条语句。当条件不成立时,两条语句都不会读取,直接跳出if()语句块内容。
              if(a==ture)
              System.out.println("Hello,黑马!我来了!“);
              System.out.println("Welcome");
如果没有大括号,if语句只控制System.out.println("Hello,黑马!我来了!"),当if条件成立的时候,程序会输出以上两句语句,当条件不成立的时候,程序只会输出System.out.println("Welcome")。
作者: lvc    时间: 2014-5-27 01:25
受教了,又了解了这些细节
作者: yuZhe_toString    时间: 2014-5-27 12:16
不加括号只运行if()后的第一句话。个人建议不要图方便,任何时候都要加上,一定要保证代码的可读性。
作者: 去过的空气    时间: 2014-5-27 13:34
加大括号就会执行大括号里面所有的代码,不加大括号就会只会执行if()下的第一句代码。
作者: an1911    时间: 2014-5-27 13:58
如果if后面的执行语句很少或者就一句的情况下,可以省略大括号,其实就是简写,省略代码。没什么好想的。
如:
if(a>2)
System.out.println("xxxx");

if(a>2){
System.out.println("xxxx");
}
效果是一样的,只是上面不加大括号的代码量少而已
作者: AntThinking_toT    时间: 2014-5-27 14:46
一句话搞定:if如果不带括号,只能执行后一条语句;带括号则执行括号里的语句块。
作者: 呀嘛咕    时间: 2014-5-27 15:11
赞赞!!!!!!!!!!!!!!!!
作者: 但愿''专注..    时间: 2014-5-27 16:41
这问题很简单,你们都回答了我想回答的,哈哈。看来这里热心人很多喔,我有什么问题也来这里提问吧
作者: 墓____夜    时间: 2014-5-27 16:54
嗯,知道了。
作者: 沐阳6011    时间: 2014-5-27 19:07
总结一下就是:   
       带大括号的语句根据if语句的规则在if语句为true的时候,执行大括号中的执行语句。若if语句为falut,则不执行。
       不带括号的语句中如果if后的条件表达式是true,则只执行该if语句的下一条语句,且这条语句必须是单条语句。剩下的语句执行与否,与该if语句无关。

小弟也受教了。谢谢提问和所有的回答,回去一定用代码实践下结果。
作者: ender    时间: 2014-5-28 22:32
只有一句不加  其他都要加




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