// 当前有一个随机数,是生成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循环,更使用未知循环次数的循环
        // 他们两个有一定是可以相互转化的

while适用于不确定循环次数的更多相关文章

  1. python学习第三次

    while循环 表示当条件成立的时候就循环适用于不知道具体循环次数,但是确定在某个条件成立的情况下就循环while语法:while 条件表达式:语句块#另一种表达方式while 条件表达式:语句块1e ...

  2. 什么是JavaScript循环结构?

    ㈠什么是循环结构 ⑴什么是循环? 反复一遍又一遍的做着相同(相似)的事情 ⑵循环中的两大要素 ①循环条件:什么时候开始,什么时候结束 ②循环操作:循环体,循环过程中,干了什么 ㈡循环结构—while循 ...

  3. 3-Java逻辑控制语句

    目录 Java选择结构 Java循环结构 return.break.continue Math.random()的使用和条件运算符 1.Java选择结构 1.1.if(布尔表达式)单选结构 - 当布尔 ...

  4. 物联网框架SuperIO 2.2.9和ServerSuperIO 2.1同时更新,更适用于类似西门子s7-200发送多次数据,才能读取数据的情况

    一.解决方案 二.更新内容 1.修改IRunDevice接口,把void Send(io,bytes)改成int Send(io,bytes).2.修改网络控制器,发送数据不直接使用IO实例,改为使用 ...

  5. 华为荣耀6 H60-L02/L12(联通版)救砖包【适用于无限重启】

    本帖最后由 HOT米粒 于 2014-11-16 20:43 编辑 华为荣耀6 H60-L02/L12(联通版)救砖包[适用于无限重启]说明: 1.本工具包用于华为荣耀6 H60-L02(联通版): ...

  6. SQL SERVER 9003错误解决方法 只适用于SQL2000

    SQLSERVER 9003错误解决方法 只适用于SQL2000 (只适用于SQL2000) "无法打开新数据库 'POS'.CREATE DATABASE 中止. (Microsoft S ...

  7. ORA-12523: TNS: 监听程序无法找到适用于客户机连接的例程

    今天使用PL/SQL Developer连接到一台新的测试服务器时,遇到ORA错误:ORA-12523: TNS: 监听程序无法找到适用于客户机连接的例程.对应的监听日志文件里面错误为TNS-1252 ...

  8. 1、SQL可搜索可排序可分页存储过程, 2、范围内的随机时间 适用于sql 2008以上

    -- ============================================= -- Author: 蜘蛛王 -- Create date: 2015-10-29 -- Descri ...

  9. smarty模板中获得循环次数

    在smarty中可以有两种写法来获得循环次数(当然lz只会这两种:>,要是有大神会有其他的,欢迎补充) 写法一: {section name=loop loop=3} {$smarty.loop ...

  10. C#更改文件访问权限所有者(适用于各个Windows版本)

    前面也提到了,前段时间在做Online Judge系统,在正式上线前有几个比较老的版本,其中第一个版本使用ACL来控制权限以确保安全(但是这个版本完全建立在IIS上,所以这样做是没效果的),遇到了一些 ...

随机推荐

  1. Node 中的 Process 理解,有哪些常用方法?

    一.是什么 process 对象是一个全局变量,提供了有关当前 Node.js进程的信息并对其进行控制,作为一个全局变量 我们都知道,进程计算机系统进行资源分配和调度的基本单位,是操作系统结构的基础, ...

  2. 如何把jQuery对象转成DOM对象?OR DOM对象转化成jQuery对象

    如何把jQuery对象转成DOM对象? 参考:https://www.imooc.com/code/8110 利用数组下标的方式读取到jQuery中的DOM对象 <div>元素一</ ...

  3. 深度解读《深度探索C++对象模型》之C++虚函数实现分析(一)

    接下来我将持续更新"深度解读<深度探索C++对象模型>"系列,敬请期待,欢迎关注!也可以关注公众号:iShare爱分享,自动获得推文和全部的文章列表. 假如有这样的一段 ...

  4. 有效预警6要素:亿级调用量的阿里云弹性计算SRE实践

    简介: 关注保持良好的预警处理,持续解决系统隐患,促进系统稳定健康发展. 编者按:随着分布式系统和业务需求的飞速发展,监控告警在我们保障系统稳定性和事故快速恢复的全周期中都是至关重要的.9月3号,阿里 ...

  5. Alibaba/IOC-golang 正式开源 ——打造服务于go开发者的IOC框架

    简介: IOC(inversion of control)即控制反转,是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.IOC-golang 是一款服务于Go语言开发者的依赖注入框架 ...

  6. 日志服务Dashboard加速

    简介: 阿里云日志服务致力于为用户提供统一的可观测性平台,同时支持日志.时序以及Trace数据的查询存储.用户可以基于收集到的各类数据构建统一的监控以及业务大盘,从而及时发现系统异常,感知业务趋势.但 ...

  7. [Go] Colly 使用 POST 提交 application/x-www-form-urlencoded 示范

    Colly 提供了 Post 和 PostRaw 方法,它们的参数类型不一样,需要注意. 目标地址接受指定的 Content-Type,可以通过设置 request Header. 局部代码: // ...

  8. 将字节数组输入流拷贝成字节数组输出流,将ByteArrayInputStream转成ByteArrayOutputStream

    /** 将 ByteArrayInputStream 拷贝成 ByteArrayOutputStream * 将 字节数组输入流 拷贝成 字节数组输出流 */ public static ByteAr ...

  9. ChatGPT开源项目精选合集

    大家好,我是 Java陈序员. 2023年,ChatGPT 的爆火无疑是最值得关注的事件之一,AI对话.AI绘图等工具层出不穷. 今天给大家介绍几个 ChatGPT 的开源项目! 关注微信公众号:[J ...

  10. 如何在M1 MACBOOK上准备好ORB-SLAM2的环境

    1. 环境 M1 Macbook Air Parallels Desktop 17 关于虚拟机,在之前尝试了UTM,但是性能欠佳,卡顿情况比较多,而且未能解决联网问题,最终只能含泪放弃 Paralle ...