【JS】循环

while循环语句

while (条件) {

     要重复执行的代码

 }

while循环案例

// 页面输出1-100
        let n = 1
        let sum1 = 0
        let sum2 = 0
        let i = 2
        while (n <= 100) {
            document.write(`这是第${n}个数:${n}<br>`)
            sum1 = sum1 + n
            n++
        }
// 计算从1加到100的总和并输出
        document.write(`1-100的相加总和为:${sum1}<br>`)

// 计算1-100之间的所有偶数和
        while (i <= 100) {
            if (i % 2 === 0) {
                sum2 = sum2 + i
            }
            i++
        }
        document.write(`1-100的偶数相加总和为:${sum2}`)

循环退出

break:退出循环

continue:结束本次循环,继续下次循环

循环退出案例

// 页面弹出对话框。‘你是超人吗’,如果输入是,则结束,否则一直弹对话框

        // 自己写的有点复杂了
        // alert('你是超人吗?')
        // let ans = prompt('请输入你的答案:')
        // while (ans !== '是') {
        //     alert('你是超人吗?')
        //     ans = prompt('请输入你的答案:')
        // }

        // 参照老师写的
        while (true) {
            let ans = prompt('你是超人吗?')
            if (ans === '是') {
                break
            }
        }

简易ATM取款机

老师做的例子是用if+switch

// 用户可以选择存钱、取钱、查看余额、和退出功能
        let money = 100
        while (true) {
          let ans = +prompt(`
          请您选择操作:
          1.存钱
          2.取钱
          3.查看余额
          4.退出
          `)  
          if (ans === 1) {
            let save = +prompt('请输入存入的金额:')
            money = money + save
            continue
          }
          if (ans === 2) {
            let remove = +prompt('请输入取出的金额:')
            money = money - remove
            continue
          }
          if (ans === 3) {
            alert(`您的余额为:${money}`)
            continue
          }
          if (ans === 4) {
            break
          }
        }

课后练习

1.打印0-20之间的整数,将每个数输出到控制台

        let i = 0
        while (i <= 20) {
            console.log(i);
            i++
        }

// 老师写的
        for (let i = 0; i <= 20; i++) {
            console.log(i);
        }

2.计算1-1000之间的累加和,并且打印输出到页面中

        let i = 1
        let sum = 0
        while (i <= 1000) {
            sum = sum + i
            i++
        }
        document.write(`1-1000之间的累加和为:${sum}`)

//老师写的
        let sum = 0
        for (let i = 1; i <= 1000; i++) {
            sum += i;
        }
        console.log(`1-1000之间的累加和为:${sum}`)

3.页面依次打印100-200之间,可以被6整除的数字

        let i = 100
        while (i <= 200) {
            if (i % 6 === 0) {
                document.write(`${i}可以被6整除<br>`)
            }
            i++
        }

// 老师写的
        for (let i = 100; i <= 200; i++) {
            if (i % 6 === 0) {
                console.log(`${i}可以被6整除`)
            }
        }

4.用户弹窗输入2个数字,页面输出2个数字中的最大值(请使用三元运算符完成)

        let num1 = +prompt('请输入第一个数字:')
        let num2 = +prompt('请输入第二个数字:')
        document.write(`两数中较大值为:${num1 < num2 ? num2 : num1}`)

5.用户输入一个数,计算1到这个数的累加和

  • 比如用户输入5,计算1-5之间的累加和
  • 比如用户输入10,计算1-10之间的累加和
        let num = +prompt('请输入一个数字:')
        let i = 1
        let sum = 0
        while (i <= num) {
            sum = sum + i
            i++
        }
        document.write(`从1到${num}的累加和为:${sum}`)

// 老师写的
        let num = +prompt('请输入一个数字:')
        let sum = 0
        for (let i = 1; i <= num; i++) {
            sum += i
        }
        console.log(`从1到${num}的累加和为:${sum}`)

6.输出成绩案例(请使用if多分支来书写程序)

接收用户输入的分数,根据分数输出对应的等级字母        A、B、C、D、E

  • 90分(含)以上,输出:A
  • 80分(含)-90分(不含),输出:B
  • 70分(含)-80分(不含),输出:C
  • 60分(含)-70分(不含),输出:D
  • 60分(不含)以下,输出:E
        let score = +prompt('请输入分数:')
        if (score >= 90 && score <= 100) {
            document.write('A')
        } else if (score >=80 && score < 90) {
            document.write('B')
        } else if (score >=70 && score < 80) {
            document.write('C')
        } else if (score >=60 && score < 70) {
            document.write('D')
        } else if (score < 60 && score >= 0) {
            document.write('E')
        } else {
            document.write('请输入正确的分数!')
        }

7.输出星期练习(请使用switch分支语句来书写程序)

  • 请用户输入一个星期数,就能将对应的英文打印出来
        let week = prompt('请输入今天是星期几:')
        switch (week) {
            case '一':
                document.write(`今天是Monday~`)
                break;
            case '二':
                document.write(`今天是Tuesday~`)
                break;
            case '三':
                document.write(`今天是Wednesday~`)
                break;
            case '四':
                document.write(`今天是Thursday~`)
                break;
            case '五':
                document.write(`今天是Friday~`)
                break;
            case '六':
                document.write(`今天是Saturday~`)
                break;
            case '日':
                document.write(`今天是Sunday~`)
                break;
            default:
                document.write(`请输入正确的格式!`)
                break;
        }

8.用户登录验证

  • 接收用户输入的用户名和密码,若用户名为“admin”,且密码为“123456”,则提示用户登录成功,否则,让用户一直输入
        while (true) {
            let user = prompt('请输入用户名:')
            let pwd = prompt('请输入密码:')
            if (user === 'admin' && pwd === '123456') {
                alert('用户登录成功!')
                break
            }
        }

// 老师写的
        while (true) {
            let user = prompt('请输入用户名:')
            let pwd = prompt('请输入密码:')
            if (user === 'admin' && pwd === '123456') {
                break
            }
        }
        alert('用户登录成功!')

综合案例变形(if多分支)

  • 需求:根据用户选择计算两个数的结果
  • 打开一个页面出现提示框,注意一直提示:请您选择+-*/
  • 如果输入q,退出程序
  • 如果输入+-*/,则提示第一个弹窗,提示用户:请您输入第一个数字,输入完毕后继续提示用户:请您输入第二个数字,都输入完毕,通过警示框alert输出结果
        while (true) {
            let op = prompt('请您选择:+ - * /')
            if (op === 'q') {
                break
            } else if (op === '+') {
                let num1 = +prompt('请输入第一个数字:')
                let num2 = +prompt('请输入第二个数字:')
                alert(`两数相加结果为:${num1+num2}`)
            } else if (op === '-') {
                let num1 = +prompt('请输入第一个数字:')
                let num2 = +prompt('请输入第二个数字:')
                alert(`两数相减结果为:${num1-num2}`)
            } else if (op === '*') {
                let num1 = +prompt('请输入第一个数字:')
                let num2 = +prompt('请输入第二个数字:')
                alert(`两数相乘结果为:${num1*num2}`)
            } else if (op === '/') {
                let num1 = +prompt('请输入第一个数字:')
                let num2 = +prompt('请输入第二个数字:')
                alert(`两数相除结果为:${num1/num2}`)
            }
        }

// 老师写的
        while (true) {
            let re = prompt(`
            1、请您选择:+ - * /
            2、如果输入q,退出程序
            `)
            if (re === 'q') {
                break
            } else {
                let num1 = +prompt('请输入第一个数字:')
                let num2 = +prompt('请输入第二个数字:')
                if (re === '+') {
                    alert(`两数相加结果为:${num1+num2}`)
                }
                if (re === '-') {
                    alert(`两数相减结果为:${num1-num2}`)
                }
                if (re === '*') {
                    alert(`两数相乘结果为:${num1*num2}`)
                }
                if (re === '/') {
                    alert(`两数相除结果为:${num1/num2}`)
                }
            }
                  
        }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值