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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我为你着迷 金牌黑马   /  2014-3-17 21:47  /  1122 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

练习题:1-100之间,7的倍数的个数并打印
                                          int count=0;
                                          for(int x=1;x<100;x++)
                                                          [
                                                                      if(x%7==0)
                                                                      count++
                                                          ]
                                     system.out.println("count="+count);
                                    
大家好! 我的问题是括号里边不是一个循环体嘛, 那么一直到循环结束不满足条件了,最终才会执行打印的语句,那就只有一个数77才对啊!
而实际上与我想的并不是一致的,我知道我的流程出了问题! 大家能不能帮忙解答一下啊 或者帮我读下这个流程是怎么样的?
谢谢了!

评分

参与人数 1黑马币 +1 收起 理由
zzkang0206 + 1

查看全部评分

6 个回复

倒序浏览
for(int x=1;x<100;x++)
        {
            if(x%7==0)
            count++
        }
这个for循环没执行完之前那个打印语句是不会执行的,这个for从1开,判断下x的值对7取余看结果是不是等于0,如果

等于0就让count+1,如果不等于0则里面的count++是不会执行的,

每判断一次后就让x的值+1,如此的循环,直到x的值等于100的时候,判断循环条件100<100是不成立的,这时候才会

打印count的值,执行打印语句

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
  1. int count = 0;
  2.                 for (int x = 1; x < 100; x++) {
  3.                         if (x % 7 == 0)
  4.                                 count++;  //此处属于if条件内
  5.                 }
  6.                 System.out.print("count=" + count);
复制代码

当x能整除7时,进入if语句,执行count++;当for循环结束时count累加14次,则输出应为14
输出语句在for循环外,则只输出一次
if (x % 7 == 0)
   count++;  
此种写法表示当x整除7时执行count++,如果不能整除则不执行

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
  int count=0;
                                          for(int x=1;x<100;x++)
                                                          [    //第一处错误:应该是{}而不是[]
                                                                      if(x%7==0)
                                                                      count++   //第二处错误:少了";"分号,
                                                          ]
                                     system.out.println("count="+count);  //第三处错误 System的s没有大写
7 14 21 28 35 42 49 56 63 70 77 84 91 98当这14个数满足if条件时候 count才++;
相关类似例题,你可以参考一下:
打印1到100之内的整数,但数字中包含7的要跳过,例如:17、27、71、72
public static void main(String[] args) {
                for(int x = 1;x<=100;x++){//用for循环遍历1到100内的整数
                        if(x%10==7||x/10==7){//用x%10,x/10得到个位、十位带7的整数
                                //if条件成立则不输出
                        }else{
                                        System.out.println(x);  //输出不包含7的1到100内的整数
                        }               
                }
        }               

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 tacyjay在路上 于 2014-3-17 23:13 编辑
  1.               //问题  1~100之间7的倍数,并打印。

  2.                 /*
  3.                 思路:
  4.                 1,先对1~100之间进行循环(遍历)通过循环的形式。
  5.                 2,在遍历的过程中,定义条件,只对7的倍数进行操作。
  6.                 3,因为7的倍数不确定,只要符合条件,就通过一个变量来记录这个变化的次数。

  7.                 步骤:
  8.                 1,定义循环语句,选择for语句。
  9.                 2,在循环中定义判断,只要是7的倍数即可,使用if语句。
  10.                    条件:7的倍数 x%7==0;
  11.                 3,定义变量,该变量随着7的倍数的出现而自增。
  12.                 */
  13.                

  14.                 int count=0;
  15.                 for(int m=1;m<=100;m++)
  16.                 {
  17.                         if (m%7==0)
  18.                         {
  19.                                 count++;  //此处也可用count+=1;
  20.                         }
  21.                
  22.                 }
  23.                 System.out.println("count="+count);
  24.                 /*
  25.                 计数器思想。
  26.                 通过一个变量记录住数据的数据变化。
  27.                 也通过循环完成。
  28.                 */
复制代码

楼上给出了楼主代码编写错误的地方,要注意啊。

本例为计数器问题。

贴出毕老师讲课的笔记,楼主细心体会一下。




评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 蓝枫 于 2014-3-18 00:34 编辑
  1. class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int count =0;
  6.                 for(int x =1; x<=100; x++)
  7.                 {
  8.                         if(x%7==0)
  9.                         {
  10.                          count++;
  11.              System.out.println("x="+x);
  12.             }
  13.                 }
  14.                 System.out.println("count="+count);
  15.         
  16.         }
  17. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
我想想,当时在老师给出代码之前我是这么做的
int a=0;
for(int b=7; b<100;b+=7)
{
      a++;
}
system.out.println(a);

╮(╯▽╰)╭
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马