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}`)
}
}
}