循环语句
根据给出的某一些条件 重复执行某一段代码
不管什么循环都必须由以下几个内容组成
- 初始化
- 条件判断
- 要执行的代码
- 自身的改变 :如果不写, 那么这个循环就是一个 死循环
while 循环语句
while (条件) { 满足条件就会执行 }
var a = 1 //初始化
while (a <= 5) { //条件判断
console.log(a); //要执行的代码
a++ //自身的改变
}
//求1-100偶数和
var sum = 0 //定义求和取得的值
var num = 1 //定义每一项的值
while (num <= 100) { //单独项的值最高为100
if (num % 2 === 0) { //判断是否为偶数
sum += num //求和值为前一求和值加新一项的值
}
num++ //新一项的值比前一项的值多1
}
console.log(sum); //输出最终求和值
do...while 循环语句
do {要循环执行的代码} while (条件)
二者区别:
- while: 会先判断条件, 如果条件成立那么在开始执行循环
- do...while: 不管条件是否成立, 先执行一次循环的代码, 然后判断条件是否成立, 决定是否开启下一轮循环
var pwd;
do { //用do-while先弹出一个输入框
pwd = prompt("请输入密码")
} while (pwd !== '123456'); //当密码正确结束循环
console.log('登陆成功');
for 循环语句
for (1. 初始化 2. 判断条件 4. 改变自身) { 3. 循环要执行的代码 }
把初始化, 条件判断, 自身改变, 都统一写在了一起
//水仙花数
//所有三位数
for (num = 100; num < 1000; num++){
//求百位数
var a = parseInt(num / 100)
//求十位数
var b = parseInt(num / 10) % 10
//求个位数
var c = num % 10
//水仙花数:每个位上的数的立方的和是这个数本身
//**左边数字的右边次幂
if (a ** 3 + b ** 3 + c ** 3 === num) {
//控制台输出
console.log(num);
//页面输出
document.write(num + ' ')
}
}
//最大公约数
//取两个数
var a = prompt() - 0
var b = prompt() - 0
//找最小值
var c = a > b ? b : a
//约数小于两个数
for (var d = 1; d <= c; d++){
//公约数能被二者整除
if (a % d === 0 && b % d === 0) {
//最大公约数是公约数的最大值
var e = d
}
}
循环嵌套的书写
循环嵌套其实就是一个循环内部又写了一个循环
两个循环的循环变量不能相同, 会有冲突
//计数器
var sum = 0
//数
for (var num = 2; num <= 30; num++){
//约数
for (var i = 2; i <= num - 1; i++){
//除1和自身有其他约数
if (num % i === 0) {
sum++
}
}
//计数器为零,说明没有其他约数
if (sum === 0) {
//此时为质数
console.log(num);
}
sum = 0
}