js基础知识(八)--for循环及练习

一、for循环
语法:
for(初始化表达式;条件表达式;更新表达式){
语句…
}
执行流程:for循环在执行时,1.先执行初始化表达式,初始化一个变量(只会执行一次);2.执行条件表达式,判断循环是否执行,如果为false,则循环结束;3.如果为true则执行循环体,语句;4.执行更新表达式对变量进行更新;5.重复2的操作。
for循环中的表达式都可以省略不写,除了括号里的两个分号

for循环的练习
练习1,求100以内所有的奇数之和

    //获取到100以内的数
    //创建一个变量存储结果
    let sum = 0;
    for (let i = 0; i <= 100; i++) {
        // 判断i是否为奇数
        if (i % 2 !== 0) {
            sum = sum + i;
        }
    }
    console.log(sum);  

或者
let sum = 0;
// i+=2就证明取得是奇数了
for (let i = 1; i < 100; i += 2) {
sum += i;
}
console.log(100以内所有的奇数之和${sum});

练习2,求100以内所有7的倍数之和,以及个数

    // 记录和
    let sum_7 = 0;
    // 个数
    let count = 0;
    //获取所有7的倍数
    for (let i = 7; i <= 100; i += 7) {
        sum_7 += i;
        count++;
    }
    console.log(`100以内所有7的倍数之和${sum_7}以及个数${count}`);    

练习3,水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:13 + 53 + 3**3 = 153)。求 1000 以内所有的水仙花数!
思路:i是不是水仙花数,各个位的立方和应该等于它本身,它就是水仙花数(如果i的百位立方+十位立方+个位的立方=i,则说明i是水仙花数),获取i的百位,十位,个位上的数字,现在变量i,已知是一个三位数,求它的百位数字?–一个任意三位数,除以100,然后取整得到的就是它的百位数,依次类推

    // 获取到所有的三位数
    for (let i = 100; i < 1000; i++) {
        // 获取i的百位,十位,个位上的数字
        // 获取i的百位的数字
        let bai = parseInt(i / 100);
        // console.log(`百位数${bai}`);
        // 获取i的十位数字
        let shi = parseInt((i - bai * 100) / 10)
        // console.log(`十位数${shi}`);
        // 获取i的个位数字(三位数除以10,其余数就是个位数)
        let ge = i % 10;
        // console.log(`个位数${ge}`);
        if (bai ** 3 + shi ** 3 + ge ** 3 === i) {
            // 进入判断,说明i是水仙花数,打印i
            console.log(`水仙花数${i}`);
        }
    }

练习4,获取用户输入的任意数,判断其是否是质数。质数也叫素数,一个数如果只能被1和它本身整除,那么这个数就是质数。1不是质数也不是合数。
创建(输入)一个数,检查num是否质数如果5只能被1和5整除,那么5就是质数,如果5只有1和5两个因数,那么5就是质数,也就是num只能被1和num整除,那么num就是质数,检查num是不是质数,只需检查num有没有1和num以外的因数,如果有,num不是质数,如果没有,num是质数
获取到所有的可能整除num的数,获取到1-num之间的所有数,不包括1和num,检查这些数能否整除num,如果都不能整除num,则num是质数,如果有任意一个能整除num,则不是质数

    //创建一个变量,记录检查的状态,默认认为num是质数,通过一个状态来判断是否质数,也就是借助一个中间的变量true或者false的状态
    let flag = true;
    let num = +prompt("请输入一个数字");
    // 获取到1-num之间的所有数,检查这些数能否整除num
    for (i = 2; i < num; i++) {
        // i现在就是所有可能整除num的数
        // 检查num能否被i整除
        // 如果num能被i整除,则说明num一定不是质数,进入判断,说明num一定不是质数
        if (num % i === 0) {
            // 通过默认判断,一开始认为就是true是质数,如果为false了,即不为质数了
            flag = false;
        }
    }
    // 输出结果
    if (flag) {
        // num是质数
        alert(`${num}是质数`);
    } else {
        alert(`${num}不是质数`);
    }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值