一、while循环
while (条件) {条件成立循环执行的代码}
- 初始化
- 条件判断
- 要执行的代码
- 自身的改变
- 第四步如果不写, 那么这个循环就是一个 死循环
- 结束的时候 就是 电脑 冒烟的时候
二、do while循环
-
do {要循环执行的代码} while (条件)
-
区别:
-
while: 会先判断条件, 如果条件成立那么在开始执行循环
-
do...while: 不管条件是否成立, 先执行一次循环的代码, 然后判断条件是否成立, 决定是否开启下一轮循环
-
三、for 循环
for (1. 初始化 2. 判断条件 4. 改变自身) { 3. 循环要执行的代码 }
重要案例:
(1)水仙花数:
// 100-1000 的水仙花数:各个位数上的三次方之和为其本身
for (num = 100; num < 1000; num++){
var hundren = parseInt (num / 100)
var ten = parseInt ( num / 10) % 10
var a = num % 10
var sum = hundren * hundren * hundren + ten * ten * ten + a * a * a
if(sum === num){
console.log(sum);
}
}
(2)写出2-30的所有质数
// 写出2-30的所有数(1既不是质数也不是素数,没有意义)
for (var i = 2; i < 30; i++) {
// 设置一个计数器为0,便于查看后边的程序是否运行
var calcu = 0
// 写出2~29的所有数
for (var j = 2; j < i; j++) {
// 设置条件,判断是否有数字除了1和它本身外还有其他的被除数,如果有,则不是质数
if (i % j === 0) {
// 如果运行了if语句,说明不是质数,那么计数器要执行++的运算,则说明该数字不是质数
calcu++
}
}
if (calcu === 0)
document.write(i + '是质数', '<br>');
}
(3)寻找两个数的最大公因数
// 最大公约数
// 输入两个数字
var num1 = prompt()
var num2 = prompt()
// 用于存储最大公因数
var j = 0
// 将娇小的值赋给sum
var sum = num1 < num2 ? num1 : num2
// 条件里的i从大到小运行,但自减要有一个临界值,即i>=1,不然i会一直自减下去跳不出循环
for (var i = sum; i >= 1; i--) {
// 能同时被num1和num2整除
if (num1 % i === 0 && num2 % i === 0) {
// 找到所有公因数中最大的
if (j < i) {
j = i
}
}
console.log(j);