循环小案例思路分享-for循环

 需求分析:

1.用户输入的年龄为多个,所以需要用到数组来保存数据,

新建一个空数组

当用户输入值满足条件时,push导入到空数组中

当不满足条件时让用户重新输入,一共需要5个有效值

 let all = []     //定义空数组存放用户输入数据

 for(let i= 1;i<=5;){     //已知需要收集5次数据,循环条件为5,定义一个自增量为i
                          //i这里先不自加,当用户输入的数据满足条件后才能执行第二次用户输入操作,所 以i需要放在if判断里面

 let nub = +prompt(`请输入第${i}个年龄`)     //将用户输入的数据存储到一个变量中

 if(nub<100 && nub>0){     //条件- 100>用户输入值>0

     all.push(nub)    // 当满足条件时把用户输入的值添加到all数组中

     i++    // 当条件满足时i自加1,则会进入第二次循环,一直到第5次停止循环

 }else{

    alert('请重新输入')    //当不满足条件时提示用户重新输入,此时因为i没有自加,所以还是执行第一次输入操作,进入死循环,只有条件满足才会进入下次循环

 }

2.筛选出all数组里面大于18岁的人

新建一个空数组

遍历all数组,找出大于18的数

导入到新数组中

let arr = []    //空数组

for(let q =0; q<all.length;q++){   //遍历数组

    if(all[q]>18){    //数组里面的第[q]个大于18的时候

        arr.push(all[q])    //打印到新数组arr中
    }   
}
console.log(`成年人的年龄${arr}`)

3.筛选出所有人的总年龄

创建一个空变量,用于存储数组自加的和

遍历数组挨个加一遍

let nub1=0    //用于存储年龄总和

for(let q =0; q<all.length;q++){    //遍历数组

     nub1=nub1+all[q]   

//nub1+all[q]在不断的重新给nub1赋值,即nub1第二次循环的时候,nub1的值为 第一次循环时nub1+all[q]的值,依次类推进行叠加即可求出总和
 }

4.求所有人的平均年龄

年龄总和/人数

console.log(`平均年龄是${nub1/all.length}`);

5.打印最大年龄和最小年龄

假设数组中第一个年龄是最大的

和数组中每一个年龄进行对比

let max=all[0]      //假设最大年龄是数组的第一个

 for(let q =0; q<all.length;q++){    //遍历数组

 if(all[q]>max){    //当数组中第q个数大于第一个数的时候(max=all[0])
    max=all[q]      //max=第q个数,此时max被重新赋值,继续进行比较,直到找出最大值
                    //如为满足此条件则不会进入到if里面,max也不会被更小的值赋值
 }

 if(all[q]<min){    //原理同上
    min=all[q]
 }

完整代码

 let all = [] 
        for(let i= 1;i<=5;){ 
            let nub = +prompt(`请输入第${i}个年龄`) 
            if(nub<100 && nub>0){ 
                all.push(nub) 
                i++
            }else{
                alert('请重新输入')
            }
        }

        let nub1 = 0
        let arr = []
        let max=all[0]
        let min=all[0]
        for(let q =0; q<all.length;q++){
            nub1+=all[q]
            if(all[q]>18){
                arr.push(all[q])
            }   
            if(all[q]>max){
                max=all[q]
            }
            if(all[q]<min){
                min=all[q]
            }
        }
        console.log(all)
        console.log(`所有人的年龄总和是${nub1}`)
        console.log(`成年人的年龄${arr}`)
        console.log(`平均年龄是${nub1/all.length}`);
        console.log(`年龄最大的是${max}`);
        console.log(`年龄最小的是${min}`);

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值