A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

if(   ){
    //内容
}

if()
  //内容

他们之间有什么区别?
应该注意哪些问题?

13 个回复

倒序浏览
加 大括号是表示 满足 小括号中条件时执行的。  而不加 大括号,则表示默认的满足条件时,执行后面的第一句话。以分号结束。
if(   ){
    表达式1;
  表达式2;
  表达式3;
  表达式4;
}
表达式1,2,3,4 都会执行的。
而不加
if()
  表达式1;表达式2;
表达式3;
表达式 2,3  都不会执行的。因为不是后面第一句。
回复 使用道具 举报

  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.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1 赞一个!

查看全部评分

回复 使用道具 举报
简单点:有括号的话,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")。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1 赞一个!

查看全部评分

回复 使用道具 举报
受教了,又了解了这些细节
回复 使用道具 举报
不加括号只运行if()后的第一句话。个人建议不要图方便,任何时候都要加上,一定要保证代码的可读性。
回复 使用道具 举报
加大括号就会执行大括号里面所有的代码,不加大括号就会只会执行if()下的第一句代码。
回复 使用道具 举报 1 0
an1911 中级黑马 2014-5-27 13:58:01
8#
如果if后面的执行语句很少或者就一句的情况下,可以省略大括号,其实就是简写,省略代码。没什么好想的。
如:
if(a>2)
System.out.println("xxxx");

if(a>2){
System.out.println("xxxx");
}
效果是一样的,只是上面不加大括号的代码量少而已
回复 使用道具 举报
一句话搞定:if如果不带括号,只能执行后一条语句;带括号则执行括号里的语句块。
回复 使用道具 举报
赞赞!!!!!!!!!!!!!!!!
回复 使用道具 举报
这问题很简单,你们都回答了我想回答的,哈哈。看来这里热心人很多喔,我有什么问题也来这里提问吧
回复 使用道具 举报
墓____夜 来自手机 中级黑马 2014-5-27 16:54:52
12#
嗯,知道了。
回复 使用道具 举报
总结一下就是:   
       带大括号的语句根据if语句的规则在if语句为true的时候,执行大括号中的执行语句。若if语句为falut,则不执行。
       不带括号的语句中如果if后的条件表达式是true,则只执行该if语句的下一条语句,且这条语句必须是单条语句。剩下的语句执行与否,与该if语句无关。

小弟也受教了。谢谢提问和所有的回答,回去一定用代码实践下结果。
回复 使用道具 举报
ender 中级黑马 2014-5-28 22:32:50
14#
只有一句不加  其他都要加
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马