• while适用于不确定循环次数


      // 当前有一个随机数,是生成100-999的随机数值
            // 需要生成数值666,需要知道循环了多少次,才生成的666这个数值

            // 我们可以通过循环来实现
            // 每次循环,执行生成一个随机数,
            // 如果这个数值不是 666 我们就继续执行循环 并且给记录次数变量数值+1
            // 当数值是666时,停止循环,变量中的数值就是记录的循环次数

            // 定义一个变量,最初的数值是0
            // 每次循环,给num赋值一个随机数,如果随机数是666,我们停止循环
            var num = 0;
            // 定义一个循环变量,实际上与真正执行的循环次数是没有关系的
            // 只是便于记录循环次数
            var i = 0;

            // 当 num数值不是666时,我们进入循环
            while(num != 666){
                // 给 num 赋值一个 100-999 之间的随机数
                num = parseInt(Math.random()*(999+1-100) + 100 );
                // 每执行一次循环,i++,记录一次循环次数
                i++;
            }

            // 循环终止之后,执行的程序
            // 输出num,见识是否是666
            // 输出i,查看循环次数是多少次
            console.log(num);
            console.log(i);

            // 总结:
            // 观察这个循环,压根儿就没有定义循环变量
            // 判断进入循环的条件,与循环变量也没有任何关系
            // 也就是没有循环变量,我们的循环也能正常执行
            // 也就是循环次数,与循环变量无关
            // 实际上我们根本不清楚,循环到底需要执行多少次
            // 这样的循环我们就称为未知循环次数的循环

            // 此种情况,我们的循环变量实际上不会影响循环次数,往往用于记录循环次数

            // 说明:
            // 一般的while循环
            // var i = 1 while(i<=5){console.log)() ; i++};
            // 判断进入循环的条件是 i<=5 循环终止时, i 实际数值是 6
            // 现在是不确定循环次数的循环
            // var i = 0 while(num!=666){i++} ;
            // 此时 决定循环次数,是num的数值,与 i的数值是无关的
            // 如果第一次就生成了666,执行i++,i的数值正好是1


            // 需要写成for循环
            // for循环实际与while循环的代码是一抹一样的,只是顺序等不同

            var num = 0;

            for( var i = 0; num != 666; i++ ){
                num = parseInt(Math.random()*(999+1-100) + 100 );
            }

            console.log(num);
            console.log(i);


            // 未知循环次数的程序,更适合使用while循环来实现
            // 非常可惜,我们现在只能完成简单的demo,这个效果还是不是很明显
            // 但是我们要牢牢记住
            // for循环,更适合循环的嵌套
            // while循环,更使用未知循环次数的循环
            // 他们两个有一定是可以相互转化的
    右侧打赏一下 代码改变世界一块二块也是爱
  • 相关阅读:
    C#中的代理(Delegate)
    动态栈C语言
    AMS算法
    动态队列实现C语言
    带头结点的循环单链表C语言
    静态栈C语言
    不带头结点的单链表C语言实现
    带头结点的双向循环链表C语言
    带头节点的单链表C语言实现
    使用函数指针模拟C++多态
  • 原文地址:https://www.cnblogs.com/ht955/p/14021526.html
Copyright © 2020-2023  润新知