/*
* 打印1-100之间7的倍数的个数及总和
*
* 前面已经说过了,当遇到功能时,首先要做的不是急着去写功能,而是先去读懂功能需求,
* 然后,再去分析这个功能需求需要分几步来做,只有读懂了功能需求,分析了功能需求,
* 你才能更好的、更快的去完成功能
*
* 这个题和之前那个求奇数之和的题基本上一样,只不过多了一个打印个数,然后是总和。
*
* 分析:
* 第一,题的前两个字是“打印”,打印什么呢?打印1-100的个数,如何打印 1-100个数,一个一个输出从1-100,太麻烦、太费事、太费时间不够简洁有效,那么需要一个能简洁有效的输出1-100,在js中已经提供了一个可以满足我们需求的一个语句,那就是for循环语句,这里需要创建一个 for循环体来自动打印1-100的个数。
*
* 第二,打印出1-100的数后,题中还说7的倍数,那么需要在打印中筛选出7的倍数,如何筛选这需要一个if判断来作为筛选,if判断我们知道了,那我们如何知道1-100中哪个是7的倍数呢? 这里就不需要一个一个找了,只要1-100中能被7整除的那就是我们需要的数。
*
* 第三,筛选出7的倍数后,还需要打印7的倍数和个数,如何打印不论是使用document.write()直接输出到页面,还是使用console.log()在控制台输出,亦或者是使用alert()提示窗口都可以,主要看个人的喜好。在这里为了不妨碍程序的运行和能更好的体现出来,这里 使用document.write()直接输出到页面;
*
* 第四,打印输出后,就是最后一个问题了,那就是把所有7的倍数相加,得出总和然后再次打印出来,在这里为了不妨碍程序的运行和能更好的体现出来,这里使用document.write()直接输出到页面;
*
* 通过分析之后的题你会更清晰的知道,第一步需要做什么,第二步需要做什么,然后是第三步、第四步;
*
* 这样做有以下几个好处:
* 1.分析之后的功能会变成几个小而又简单的功能。
* 2.思路不会乱。
* 3.逻辑清晰。
* 4.使用时间不会过长。
*/
/*
* 计数器变量。创建初始化变量后在哪里写记录呢?因为在筛选7的倍数已经可以知道,只要是7的倍数就会在if
* 判断中打印一次,所以记录个数只需要写在if判断打印的下面
*/
var count = 0;
//创建初始化保存变量
var sum = 0;
//第一,创建for循环体,并初始化条件表达式
for(var i = 1; i <= 100; i++) {
//打印1-100
//这里这个打印只是为了方便我们直观的看到从1-100,所以我们看到后需要注释掉
//document.write('第 '+i+'<br />');
//第二,筛选7的倍数
/*
* 创建一个if判断来帮助我们来筛选,条件表达式中怎么写呢?上面分析中已经提到了,只要1-100能被
* 7整除就是我们需要的数。接下来开始写
*/
if ( i % 7 == 0) {
/*
* 第三,打印7的倍数及个数,如何记录个数,这里我们需要在for循环外面写一个计数器变量来记录个数。
*/
document.write('第 '+i+'<br />');
//这里就是需要记录个数的地方,在没打印一次时就需要计数器自增一次,那么这里应该写count++;
count++;
//想要打印count的个数,就需要在for循环体外面来打印,也就是下面的位置
/*
* 第四,7的倍数及个数都打印了,接下来就是7的倍数总和,这里我们还需要在for循环体外面创建一个
* 保存总和的变量,记住不论是保存的变量,还是计数器的变量都需要在for循环体外面,并且还要写在
* for循环体上面,也就是count变量和sum变量初始化的位置
*/
sum += i;
}
}
//打印7的倍数的个数,想要看一个一个打印,需要把document.write("count个数:"+count);写到count++;下面;
document.write("7的倍数的个数为: "+count+'<br>');
//打印7的倍数总和
document.write("7的倍数总和为: "+sum);
//切记在写for循环时,不要写成死循环