JS循环语句及简单案例

127 阅读1分钟

01-循环语句

什么是循环语句?

循环语句:帮助问我们多次执行,某一个代码段。

02-while循环

语法:while (条件){要循环执行的代码}

var = 1;//初始条件
while (num < 5){   //条件判断
    cosole.log(1)  //循环执行的代码
    num++   //改变自身,如果不写,会死循环。
}
/**
         * 第一次执行 num == 1
         *          符合 num < 5 执行代码: 打印1, num自增
         * 第二次执行 num == 2
         *          符合 num < 5 执行代码: 打印1, num自增
         * 第三次执行 num == 3
         *          符合 num < 5  执行代码: 打印1, num自增
         * 第四次执行 num == 4
         *          符合 num < 5  执行代码: 打印1, num自增
         * 第五次执行 num == 5
         *          不符合 num < 5 不执行代码, 且 停止 循环
*/

03-do...while循环

语法:do{要执行的代码} while(条件)

与while循环的差异

while 首次执行就判断条件,条件不符合不执行,且停止循环。

do...while 首次就执行,不需要判断条件,执行最少一遍,在判断条件, 条件不符合时不执行,且停止循环。

var num = 10 //定义
do {
    console.log(1)  //要执行的代码
    num++   //改变自身,否则死循环
}while (num < 6)   //判断条件
    /**
    *首次执行
        1.直接执行代码,打印1,num++
        2.判断条件。条件为真继续循环,条件为假,停止循环
    */

05-课堂练习

1.计算 从 1+2+3+4+......+100的和

var num = 1;
var res = 0;
while (num <= 100){
    sum += res
    sum++
}
//5050

06-for循环

语法:for(1.声明变量(初始化条件);2.判断条件;3.改变自身){循环执行的代码}

案例:在1000 到 2000 的数字内,需要求出是4的倍数,且不是100的倍数的那个数字,不打印到控制台,打印到页面,每四个换一行。

var  num = 0 //计数器---计算达到4时,需要换行
for (var i = 1000;i <= 2000;i++){
    if(i % 4 == 0 && i % 100 !== 0){
        document.write(i + '')//隐形转换--转换成字符串类型
        num++
        if (num == 4){  //计数
            document.write('<br>')
            num = 0
        }
    }
}

案例---水仙花数---个位的立方+十位的立方+百位的立方的和等于原数字

for (i = 100;i < 1000;i++){
    var ge =i % 10;
    var shi = parseInt(i % 100 /10);
    var bai = parseInt(i / 100);
    var sum = ge ** 3 + shi ** 3 + bai ** 3  // **表示返回右侧值的X次方
    if (i === sum){
        console.log("是水仙花")
    }
}

案例---质数--能被他自身和1整除的数

var num = prompt('请输入一个数字,用于检测是否为质数')-0 // -0的作用的是将用户输入的转为number 原理:隐形转换
//检测用户输入的是否为质数
var count = 0
for (var i = 2;i < num; i++){
    if (num % i ==0){
        count ++
    }
}
if(num > 1){
    count == 0 ? console.log('是质数') : console.log('不是质数')
}

JavaScript提供的一个方法:prompt

可以让用户输入一些文本内容传递给JS

注:prompt返回的用户输入值 为String类型;如果用户点取消

,则返回null 类型

07-流程控制语句

break:当我们想 满足某一个条件时,停止整个循环,可以使用break

continue:当满足一个条件时,停止当前本轮循环,后续的循环正常执行。

for (var i = 1; i <= 5; i++) {
            console.log('吃了一个包子')
            if (i == 3) {
                console.log('吃饱了')
                break
            }
        }
​
        for (var i = 1; i <= 5; i++) {
            if (i == 3) {
                console.log('这个包子掉地上了, 我不吃了')
                continue    // 只能确保后边的代码 不执行
            }
            console.log('我吃了一个包子')
        }

08-循环嵌套

案例

        /**
         *
         *          *****
         *          *****
         *          *****
         */
for (var i = 0; i < 3;i++){
    for (var k = 0;k < 5; k++){
        document.write('*')
    }
    document.write('*')
}
        /**         *
         *          **
         *          ***
         *          ****
         */
        for (var i = 1; i<=4;i++){
            for(var k = 1;k <= i;k++){
                document.write('*')
            }
            document.write('<br>')
        }
        

作业1--九九乘法表

var count = 0
        for (i = 1;i < 10;i++) {
            for (j=1;j <= i;j++){
                count = i*j
                document.write(j+'×'+i+'='+count+' ');
​
            }
            document.write("<br>")
        }

作业2--苹果3元一个,鸭梨2元一个,桃子1元一个,用200元正好买100个,请问有几种方案?

for(pingguo = 0; pingguo <=100;pingguo++){
    for(yali = 0; yali <=100;yali++){
        for(taozi = 0; taozi <=100;taozi++){
            if(pingguo*3 + yali*2 + taozi*1 ==200 && pingguo + yali +taozi ==100){
                console.log("苹果买"+pingguo+"个"+"鸭梨买" + yali +'个'+"桃子买" + taozi + '个');
        }
        }
    }
}

\