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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


注释前count输出100      注释后count输出14         

6 个回复

正序浏览
tinlen 中级黑马 2015-5-13 21:32:15
7#
你最好把if后的{}大括号加上,这样就容易看出问题出现在哪了。省略大括号后,if语句到它后面第一个分号操作语句就结束了。之后的count++就不受if语句影响。
回复 使用道具 举报
楼主注释之前的代码是这样的
for(int x=1;x<=100;x++) {
        if(x%7==0) {
        System.out.println("x =" + x);
     }
   count++;                                          
           }

注释掉之后是这样的
for(int x=1;x<=100;x++) {
        if(x%7==0) {
         count++;
     }                                   
           }

if语句后不加{},只是对语句后第一行起作用
回复 使用道具 举报
if语句未通过“{}”描述方法内的代码时,只能操控最近一条语句,换言之未注释之前,100次循环,count会从0开始不断加1
回复 使用道具 举报
_hy 发表于 2015-5-13 14:23
if语句没有大括号时,只控制离它最近的一条执行语句,所以注释前if语句只控制打印语句,与count++语句无关 ...

嗯 明白了  多谢
回复 使用道具 举报
if语句没有大括号时,只控制离它最近的一条执行语句,所以注释前if语句只控制打印语句,与count++语句无关;注释后,if语句就只控制count++语句。
回复 使用道具 举报
因为注释前,当x%7==0时,if语句体中执行的是输出x的值,这个判断条件的结果不会影响count的值自增。
而注释后,只有当x%7==0时,count的值才会自增,就是这样的:
  1. for(int x=1;x<=100;x++)
  2.                 {
  3.                         if(x%7==0)
  4.                         {
  5.                                 //当x的值符合条件时 ,count的值才自增1
  6.                                 count++;
  7.                         }                               
  8.                        
  9.                 }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马