// 当前有一个随机数,是生成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. 如何使用XSSFWorkbook读取文本薄?

    [版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18146625 出自[进步*于辰的博客] 1.文件兼容类 ...

  2. 力扣696(java)-计数二进制子串(简单)

    题目: 给定一个字符串 s,统计并返回具有相同数量 0 和 1 的非空(连续)子字符串的数量,并且这些子字符串中的所有 0 和所有 1 都是成组连续的. 重复出现(不同位置)的子串也要统计它们出现的次 ...

  3. 力扣319(java)-灯泡开关(中等)

    题目: 初始时有 n 个灯泡处于关闭状态.第一轮,你将会打开所有灯泡.接下来的第二轮,你将会每两个灯泡关闭第二个. 第三轮,你每三个灯泡就切换第三个灯泡的开关(即,打开变关闭,关闭变打开).第 i 轮 ...

  4. KubeDL HostNetwork:加速分布式训练通信效率

    ​简介:ubeDL 为分布式训练作业带来了 HostNetwork 网络模式,支持计算节点之间通过宿主机网络相互通信以提升网络性能,同时适应 RDMA/SCC 等新型高性能数据中心架构的网络环境,此外 ...

  5. 技术实践第三期|HashTag在Redis集群环境下的使用

    ​简介:欢迎了解友盟+技术干货第三期内容:Redis集群环境如何按照前缀批量删除缓存.希望能对开发者们在实际应用中有所帮助. 一.背景 数据源列表添加缓存支持,types字段可传多值,如app, mi ...

  6. Docker Volume 的经常用法区别

    对于使用 NFS 的 Docker 数据卷,配置示例应当类似于这样: version: '3' services: my_service: image: your_image volumes: # 挂 ...

  7. 万字长文总结与剖析C语言关键字 -- <<C语言深度解剖>>

    C总结与剖析:关键字篇 -- <<C语言深度解剖>> 目录 C总结与剖析:关键字篇 -- <<C语言深度解剖>> 程序的本质:二进制文件 变量 1.变量 ...

  8. aspnetcore两种上传图片(文件)的方式

    aspnetcore上传图片也就是上传文件有两种方式,一种是通过form-data,一种是binary. 先介绍第一种form-data: 该方式需要显示指定一个IFormFile类型,该组件会动态通 ...

  9. 如何将本地项目第一次同步到gitee远程

    一,Gitee账号的注册/登录 在gitee登录入口输入相关信息进行注册登录https://gitee.com/signup#lang=zh-CN 二,本地安装git客户端并配置用户信息 1.Git ...

  10. 简化 Python 日志管理:Loguru 入门指南

    简化 Python 日志管理:Loguru 入门指南 在开发和维护软件项目时,高效的日志管理系统对于监控应用程序的行为.调试代码和追踪异常至关重要.Python 的标准日志模块虽然功能强大,但其配置和 ...