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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

java小白,在学习java基础视频,看到毕老师给的一个练习。便自己编写了一下。在编写的过程中。输出个数是没有问题的。
代码如下:
//目的:计算1-100之间7的倍数的个数。
/**
要求:
1,先求出1-100之间7的倍数。
2,再计算倍数的个数,并输出打印。

知识点:使用for语句,并使用嵌套循环。for语句中嵌套if语句。

*/


class BeiShu
{
        public static void main(String args[])
                {
                int sum=0;
                for(int a=1;a<=100;a++)
                        {
                        if(a%7==0)
                                sum++;
                               
                               
                }
                System.out.println("sum="+sum);
        }
}


输出结果为:sum=14;
到此该程序已完成。
看到结果后,我在想,我只看到了7的倍数的个数。没有看到7的倍数有哪些。于是在想能不能把7的倍数这些数和个数都输出打印。
有想法就去做,于是便在上边的代码  if(a%7==0)
                                                            sum++;  后面加入
                                                          System.out.println("a的倍数有:"+a);
以为输出打印的结果和自己想的一致,结果输出的结果中7的倍数的个数仍然是14。但输出的7的倍数的数却是1到一百,不是7、14、等。
出现错误便要解决。便把System.out.println("a的倍数有:"+a); 这行代码放在
if(a%7==0)
System.out.println("a的倍数有:"+a);
sum++; 。结果7的倍数的数字正常输出打印。但7的倍数的个数却成了100.
想了好一会还是没想出来。便打开毕老师的视频重看了那段视频,然而毕老师那视频没讲输出满足7的倍数的数字。那只有自己再想想。
几经波折,把代码修改一遍。
//目的:计算1-100之间7的倍数的个数。
/**
要求:
1,先求出1-100之间7的倍数。
2,再计算倍数的个数,并输出打印。

知识点:使用for语句,并使用嵌套循环。for语句中嵌套if语句。

*/


class BeiShu
{
        public static void main(String args[])
                {
                int sum=0;
                for(int a=1;a<=100;a++)
                        {
                        if(a%7==0)
                                {
                                sum++;
                                System.out.println("a的倍数有:"+a);
                                }
                               
                }
                System.out.println("sum="+sum);
        }
}


结果正确。

java小白继续努力。

HM.png (6.53 KB, 下载次数: 82)

HM.png

HA.png (61.46 KB, 下载次数: 94)

HA.png

10 个回复

倒序浏览
还有一个办法,循环变量赋值为7,每循环一次,循环变量每次加7,
回复 使用道具 举报
所以说,格式要规范,if(){}大括号还是要带上的好
回复 使用道具 举报 1 0
championjx 发表于 2015-10-12 14:24
所以说,格式要规范,if(){}大括号还是要带上的好

非常认同,不支持像视频中那样if下面有一行代码就不加大括号,这点代码量没什么,等真正开发的时候几千行代码到时候万一错误,找死都找不到错误点。编译器也不会报错。
回复 使用道具 举报
给你来个稍微标准的java程序吧,仅供参考,希望能帮到你
  1. package com.heima.gui;

  2. public class Test2 {

  3.         /**
  4.          * @param args
  5.          *
  6.          * 需求:输出从1到100之间7的倍数的所有数字,并统计个数
  7.          */
  8.         public static void main(String[] args) {
  9.                
  10.                 int count = 0;                        //定义计数器
  11.                
  12.                 System.out.print("1到100中是7的倍数的数字有:");
  13.                
  14.                 for (int i = 1; i <= 100; i++) {                //从1到100循环自增
  15.                         if (i % 7 == 0) {
  16.                                 count++;
  17.                                 System.out.print(i + " ");
  18.                         }
  19.                 }
  20.                
  21.                 System.out.println("\r\n这样的数共有" + count + "个");
  22.         }

  23. }
复制代码
回复 使用道具 举报
championjx 发表于 2015-10-12 14:24
所以说,格式要规范,if(){}大括号还是要带上的好

恩恩,会继续努力。
回复 使用道具 举报
zombie_ad 发表于 2015-10-12 10:45
还有一个办法,循环变量赋值为7,每循环一次,循环变量每次加7,

谢谢提供新方法,会继续完善自己的编程能力。
回复 使用道具 举报
Ctrl + Shift + F给你的代码化化妆{:2_31:}
回复 使用道具 举报
非常非常非常的受一誰
回复 使用道具 举报
我也刚开始学 差不多学到这个地方了
回复 使用道具 举报
秦旭辉 发表于 2015-10-12 23:13
我也刚开始学 差不多学到这个地方了

一起加油,为梦想奋斗。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马