while:循环;
四要素,
1初始化
2 条件判断
3 要执行的代码
4 自身的改变(如果不写,就是一个死循环)
do while 循环
(while 条件成立循环 执行的代码)
do (要循环执行的代码) while(条件)
区别: whlie:会先判断条件,如果成立就会执行
do whlie: 不管条件是否成立都会运行一次,然后判断条件是否成立,决定是否开启下一次循环
for循环:
( 1 初始化,2 判断条件,3要执行的代码, 4改变自身 ){ 要执行的代码 }
循环嵌套:
就是在for的循环中,有写了一个for循环, 两个循环的初始量的变量不要相同。
案例
水仙花数
-
找到所有的 三位数 (100~999) // * 2. 找到某一个三位数的各个位置的值 // * 3. 计算三个位置上各个数字的三次方之和 // * 4. 对比 是否等于自身
// 找到所有的 三位数 (100~999) for( var i = 100; i <= 999; i++){ // 2. 找到某一个三位数的各个位置的值 var gew = i % 10 var shiw = parseInt(i / 10) % 10 var baiw = parseInt(i / 100) // 3. 计算三个位置上各个数字的三次方之和 var sum = gew ** 3 + shiw ** 3 + baiw ** 3 // 4. 对比 是否等于自身 if( sum === i ){ console.log(i ,'是水仙花数') } }
2 最大公约数
// 1. 先找到 112 或者 18 的所有数字
// * 2. 寻找 12 和 8 的公约数
// * 3. 找到所有的公约数中 最大的
var num1 = 56
var num2 = 4
// 存储一个最小值 用三木
var num3 = num1 > num2 ? num2 : num1
// 在存储一个最大的公约数
var num4 = 0
// 1 先找到 1~12 或者 1~8 的所有数字
for( var i = num3 ; i >= 1 ; i--){
// 2. 寻找 12 和 8 的公约数
if(num1 % i === 0 && num2 % i === 0){
// 3. 找到所有的公约数中 最大的
if(num4 < i){
num4 = i
}
}
}
console.log('最大公约数', num4)
3 求质数 // 假设数字 // 存储一个变量 // 找到2~n-1的数字
for (var n = 1; n <= 30; n++) {
var sum = 0
for (var i = 2; i < n; i++) {
// 和n整除的数字
if (n % i === 0) {
// 改变自身,不能等于初始值
sum++
}
// 等于 0 就是个质数 没有运行, 如果可以运行,那就不是一个质数
}
if (sum === 0) {
console.log(n)
}
}