javascript基本循环

常见的基本循环体

  1. while循环
  2. do-while循环
  3. for循环

while循环体

语法while(布尔表达式){
代码段}.
while循环含义:
// while语句是一个循环结构,小括号内放的是循环条件的布尔表达式,如果给定的表达 式不是布尔表达式,则会自动转换成布尔值
// JS引擎从上往下执行代码 当执行到while语句时
// 1. 需要先判断布尔表达式的结果
// 2. 如果结果为真 执行代码段内的代码
// 如果结果为假 跳过while代码段 从while之后继续执行
// 3. 条件为真 执行完毕代码段以后 会继续判断布尔表达式
// 如果结果为真 执行代码段内的代码
// 如果结果为假 跳过while代码段 从while之后继续执行
// 直到布尔表达式结果为false为止
// 如果布尔表达式结果为真切无法变成假的情况 叫做死循环
5,写循环一定要注意一个点:一定要有存在结束循环的条件,否则则会造成死循环
下面是一个简答的小应用; 打印100以内的所有数1-100;

<script>
  var i = 1;
        console.time('start');//可以获取此次循环执行时间,
        while (i <= 100) {
            // console.log(i++);//此时输出1`~99;
            i++;加上下面这一条语句就能打印所有的奇数
        }
        console.timeEnd('start');
    </script>
    //同时里面也是可以使用关键字break
    <script>
        // break关键字 出现在循环中 表示跳出最近的一个循环
        // 在执行break关键字以后 后面的语句都不会执行
        var i = 0;

        while (i < 10) {
            console.log(i); //输出结果:0 1 2 3 4 5 6
            if (i > 5) break;
            i++; //1 2 3 4 5 6
        }
        console.log(i);
    </script>
    continue关键字
      <script>
        // continue 在循环结构中 用于跳过当此循环 进入到下一次循环
        // break和continue可以出现在任何循环结构中

        // 显示100以内 个位不等于3的数

        var i = 0;
        while (i < 100) {
            i++;

            if (i % 10 == 3) {
                continue; // 跳过当前的循环 继续判断布尔表达式
            }

            console.log(i);
        }
    </script>

do-while循环

语法以及含义{
// do{
// 代码段
// }while(布尔表达式);

    // do 英文含义 做
    // 先执行一边代码段 然后判断逻辑表达式
    // do-while和while的区别
    // do-while无论什么情况都至少会执行1次代码段
    // while在条件不满足时 1次都不执行
    // 其他的情况没有区别}

注意点:while循环是进行条件表达式的判断,[先判断,后执行操作]
do-while是先执行do里面的代码块,再来进行while后面的逻辑判断.do-while是最少是执行一次的,但是while可能一次也不会执行,
共同点:都是可以用来运用于不知道具体的循环次数,选择其中一个使用,
特殊场景,最少执行一次,就可以使用do-while循环体,典型案例就是猜数字游戏.
猜数字游戏代码段

 <script>
        // 需要一个随机数  1-100之间
        // 猜数字是多少

        var randomNumber = Math.floor(Math.random() * 100) + 1; // 生成一个1-100的随机数

        var userInput;//定义一个接受用户输入的值

        do {
            userInput = parseInt(prompt('请输入一个1-100之间的数字'));//parseInt[用于取整数]

            // 判断用户输入是有效输入
            if (isNaN(userInput)) {
                alert('输入的数字有误,请从新输入');
                continue; // 输入错误 继续 
            }

            if (userInput === randomNumber) { // 判断猜对
                alert('恭喜你猜对了');
            } else if (userInput > randomNumber) {
                alert('太大了,请继续猜');
            } else {
                alert('太小了,请继续猜');
            }

        } while (userInput != randomNumber); // 循环条件 不相等,继续执行
    </script>

for循环

语法for(表达式1,表达式2,表达式3){
代码执行块}

    // for括号内的三个表达式
    // 1. 初始化
    // 2. 循环条件(布尔表达式)
    // 3. 增量(改变循环条件)

    // for语句的执行顺序
    // 1. 执行初始化(只执行1次)
    // 2. 判断条件(表达式2)
    // 3. 条件为真执行循环,假结束
    // 4. 执行完毕循环体以后 执行 增量(改变循环条件)
    // 5. 判断条件(表达式2)
    // 6. 条件为真执行循环,假结束
    // 7. 执行完毕循环体以后 执行 增量(改变循环条件)

for循环主要是用于有明确的循环次数,相比前面两种循环,更倾向于后面的这种循环体,编写时候也不容易出问题.

使用嵌套循环在窗口输出一个直角三角形

 <script>
        // *
        // **
        // ***
        // ****
        // *****
        //在页面打印一个*号直角三角形

        for (var i = 1; i <= 5; i++) {
            for (var j = 1; j <= i; j++) {
                document.write('*');
            }
            document.write('<br>');
        }
    </script>

使用嵌套循环输出一个九九乘法表

<style>
        span {//定义样式
            display: inline-block;
            width: 68px;
            height: 25px;
            margin: 3px;
        }
    </style>
    <script>
        for (var i = 1; i <= 9; i++) {
            for (var j = 1; j <= i; j++) {
                document.write('<span>' + j + '&times;' + i + '=' + j * i + '</span>');
            }//&times表示的是乘号[*X]
            //document.white[页面打印]
            document.write('<br>');//换行
        }
    </script>

求阶乘之和

    // 求阶乘的和
        // var sum = 0;
        // var n = 1;
        // for (var i = 1; i <= 20; i++) {
        //     n *= i; // 计算的是n = n * i
        //     sum += n;
        // }
        // console.log(sum)//控制台打印输出
        

经典的百元买白鸡

 // 2. 百钱买百鸡
        // 给你100元 需要买100只鸡 钱必须花完
        // 公鸡5元1  母鸡3元1   小鸡1元3
        // 请问能买多少只公鸡  母鸡  和 小鸡
        // x+y+z = 100
        // 5x+3y+1/3z = 100
        // 假设公鸡为x  母鸡为y  小鸡为z

        for (var x = 0; x < 20; x++) {
            for (var y = 0; y < 33; y++) {
                for (var z = 0; z < 99; z++) {
                    if (x + y + z == 100 && x * 5 + y * 3 + z * 1 / 3 == 100) {
                        console.log('x:' + x + ',y:' + y + ',z:' + z)
                    }
                }
            }
        }

使用for循环作出1000以内的三位数

     // 水仙花数 是一个三位数
        // 它是自幂数的一种
        // 指的是 这个数的 个位3次方+十位3次方+百位3次方 等于这个数
        // 153 == 1+125+27
        // 找出所有的水仙花数

        // 256 /10   25.6%10  5
        // 256%100 56/10

        for (var i = 100; i <= 999; i++) {
            var digit = i % 10; // 获得个位
            var ten = parseInt(i % 100 / 10); //获得十位
            var hund = parseInt(i / 100); //获得百位
            if (digit * digit * digit + ten * ten * ten + hund * hund * hund == i) {
                console.log('水仙花数:' + i);
            }
        }

四位数值以内水仙花数

     // 水仙花数 是一个三位数
        // 它是自幂数的一种
        // 指的是 这个数的 个位3次方+十位3次方+百位3次方 等于这个数
        // 153 == 1+125+27
        // 找出所有的水仙花数

        // 256 /10   25.6%10  5
        // 256%100 56/10

        for (var i = 100; i <= 999; i++) {
            var digit = i % 10; // 获得个位
            var ten = parseInt(i % 100 / 10); //获得十位
            var hund = parseInt(i / 100 / 10); //获得百位
              var Hhund = parseInt(i / 1000); //获得千位
            if (digit * digit * digit* digit + ten * ten * ten* ten + hund * hund * hund* hund  + Hhund * Hhund * Hhund* Hhund== i) {
                console.log('水仙花数:' + i);
            }
        }

判断用户输入的数是否是质数

  //定义一个用户输入的变量 
        var i = prompt('请输入一个数:');
        //第一种情况,排除偶数不是指数的情况
        if(i<0 ){
            alert('不是质数');
        }
       else if (i == 0 || i == 1) {
            alert('你输入的' + i + '既不是质数也不是合数');
        }
        else if (i % 2 == 0 && i != 2) {
            alert('你输入的数值' + i + '不是质数');
        }
        else if(i==3||i==5||i==7){
            alert('你输入的数'+i+'是质数');
        }
        else if (i % 3 == 0 || i % 5 == 0 || i % 7 == 0) {
            alert('你输入得数' + i + '不是质数');
        }
      
        else {
            alert('你输入的数' + i + '是质数');
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值