【70】JS(4)——表达式和语句②流程控制语句(3)综合

本篇学习目标:
1.理解穷举思想、累加器、累乘器实现原理;
2.能够综合利用流程控制语句实现小案例。




一、穷举思想

1.介绍

  • 穷:穷尽,举:列举
  • 实际案例中,可能需要找到一些有规律的数据,但是计算机没办法自动智能筛选所要的数据,只能程序员自己书写一段代码,让计算机根据代码去进行筛选。
  • 穷举思想:是一种解决问题的方法,将所有的需要数据所在的范围内所有的数据都一一列举出来,再根据规律的条件对所有这些数据进行筛选,这种方式就是穷举法。

2.制作方法

  • for 循环:外层使用 for 循环进行一一列举。
  • if 语句:内层用 if 语句进行判断,筛选需要的数据,如果满足条件就操作数据,如果不满足条件跳过看下一次循环的数据。

3.案例

案例1:请在控制台输出 6 的所有约数。
注意:
a % b = 0,a 叫做 b 的倍数,b 叫做 a 的约数。
约数也叫作因数。
从可能性中一一列举,筛选。
一个数的约数只能是小于等于自己的数。

  • 案例思路:
    6 的约数可能性有1-6 之间。
    看 1,是 6 的约数,输出
    看 2,是 6 的约数,输出
    看 3,是 6 的约数,输出
    看 4,不是 6 的约数,跳过
    看 5,不是 6 的约数,跳过
    看 6,是 6 的约数,输出
    *代码如下:
    //穷举思想:请在控制台输出 6 的所有约数。
    var a = 6;
    for (var b = 1 ; b < a ; b++) {
        if (a % b == 0) {
            console.log(b + "是" + a +"的约束");
        }
    }

在这里插入图片描述

案例2:请让用户任意输入一个数字,控制台自动判断出所有这个数的约数。

    var i = prompt("请输入一个整数","6");
    for (var n = 1; n < i ; n++) {
        if (i % n == 0) {
            console.log(n + "是" + i + "的一个约数");
        }
    }

在这里插入图片描述



二、累加器

1.介绍

  • 有时候需要的不是每个数据是什么,需要得到所有数据的加和,必须想办法将所有的数据的和存起来,就用到了累加器。
  • 累加器本质就是变量
  • 实现累加的效果,就是利用循环每次循环就将新的数据加到原始的变量中去,赋值过程是一个加等于赋值

2.注意事项

(1)累加器必须定义在循环外面的前面
  • 累加器必须定义在循环外面的前面,如果定义在循环内部,每次循环都会将累加器重置,不能实现累加功能。
(2)初始值必须设置为 0
  • 累加器的初始值必须设置,而且必须设置为 0,不会影响累加结果。(因为0加任何数都等于任何数)
(3)使用最终累加结果时,必须在 for 循环结束后的外面
  • 使用最终累加结果时,必须在 for 循环结束后的外面,如果写在循环内部,循环没结束,并不是最终需要的值。

3.案例

求 1-10 之间所有整数的和。

//定义累加器
sum = 0;
for (var i = 0; i <= 10; i ++ ) {
    //用加等于赋值实现累加
    sum += i ;  //等价于sum = sum + i
}
//输出累加结果
console.log (sum);

在这里插入图片描述



三、累乘器

1.介绍

  • 累积一些数据的乘积。与累加器非常类似。

2.注意事项

(1)累乘器必须定义在循环外部前面
  • 累乘器必须定义在循环外部前面
(2)初始值必须是 1
  • 累乘器的初始值必须是 1,1 乘以任何数都等于本身。
(3)使用最终累乘结果时,必须在 for 循环结束后的外面
  • 累乘器最终结果必须在 for 循环结束后使用。

3.案例

求10的阶乘(10!)。

     //定义累乘器
     var mul = 1;
     for (i = 10 ; i >= 1 ; i--) {
         //用乘等于赋值,实现累乘
         mul *= i;  //mul = mul * i 
     }
     //输出最后结果
     console.log(mul);

在这里插入图片描述



四、案例应用

水仙花数是一种特殊的三位数,它的特点就是,每个数位的三次方和,等于它本身。
请编程找出来。

       //穷举思想找出所有三位数:
     for (i = 100 ; i <= 999 ; i ++) {
         //找到i的个位十位百位
         var g = i % 10;
         var s = parseInt(i / 10) % 10;
         var b = parseInt( i / 100) ;
         //判断每个数位的三次方和是否等于i本身
         if (g*g*g +s*s*s + b*b*b == i) {
             console.log(i+"是水仙花数");
         }
     }

在这里插入图片描述


下篇继续:
【71-79】Java Script学习——阶段2
【71】JS(5)——数组

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倏存

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值