关于在js中对于for循环打印100以内的所有质数以及申请var 变量的理解

下面是一个关于在js中打印100以内的所有质数的例题:


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title></title>
</head>
<body>
    <script>
    var count = 0;
    for (var n = 2; n <= 100; n++) {
        var result = true;
        for (var i = 2; i < n; i++) {
            if (n % i == 0) {
                result = false;
                break;
            }
        }
        if (result) {
            count++;
            console.log(`当前为第${count}次`);
            console.log(`质数为:${n}`);
        }
    }
    </script>
</body>
</html>

理解质数概念:

        质数是只能被1和自身整除的正整数。换句话说,质数是除了1和它本身外,没有其他正整数能够整除它的数。

        质数是除了1和本身之外没有其他2个正因数相乘从而得到本身的结果。

        质数一定是大于等于2的自然数。

        


解题思路:

        首先,通过外循环来得到2-100的所有数字,每次外循环之后,变量n自增,直至超出范围结束。  其次,知道外循环的逻辑,每一次循环会得到一个n,通过对n进行判断是否为质数,在这里,我采用的是对n取余的方法,判断余数是否为0,是则说明有其他因数,但是,这里要注意一点,1和n本身的数字对n取余也会是0,这回导致没有结果输出。所以,这里我采用的是对i的初始值定为2,这样不会出现除以1的情况,然后,让i<n不会取到n本身的问题。在内层循环if条件我通过n%i==0判断出所有不是质数的情况,但是,我们需要的是质数,所以,这里我采用了布尔类型来判断,因为最内层循环不是质数,在最外面我定义了result为true,对于满足质数条件的值跳出不进行内层if判断,然后进行外层的if判断,对于满足内层条件的值重新赋值为false并通过break跳出,进行外层循环的if判断,发现是false跳过,是true输出满足条件的结果进行打印,并且添加计数器,对于每次打印的质数进行输出进行了多少次。


关于在for循环申请var 变量的理解及易错点分析:

        上述案例中,内部的for循环假设一直在循环,最开始它会申请一个i变量,在这里判断i的类型是通过后面赋的值来判断是什么类型的变量,在申请i但没赋值时是不知道类型的,只有赋值之后才知道是什么类型。其次开始申请一个变量之后在不跳出内部循环的条件下,会通过i++每循环一次赋予i一个新的值,但是,在跳出内部循环之后进入又一个外部for循环时再次进入内部循环它会再申请一个新的变量i,初始值为2,然后再次进入之前循环往复,直至结束。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

落花残梦~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值