// 当前有一个随机数,是生成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. cookie与localStorage与sessionStorage

    1. cookie 1_1: 简述 HTTP Cookie(也叫 Web Cookie 或浏览器 Cookie)是服务器发送(由服务器设置后返回给浏览器端)到用户浏览器并保存在本地的一小块数据.浏览器 ...

  2. 一些奇奇怪怪的js知识

    0.关于前端为什么typeof null 得到的结果是 object 对于 null 来说,很多人会认为他是个对象类型,其实这是错误的. 虽然 `typeof null` 会输出 `object`,但 ...

  3. 力扣151(java)-颠倒字符串中的单词(中等)

    题目: 给你一个字符串 s ,颠倒字符串中 单词 的顺序. 单词 是由非空格字符组成的字符串.s 中使用至少一个空格将字符串中的 单词 分隔开. 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果 ...

  4. 日志服务Dashboard加速

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

  5. Flink 1.13,面向流批一体的运行时与 DataStream API 优化

    简介: 在 1.13 中,针对流批一体的目标,Flink 优化了大规模作业调度以及批执行模式下网络 Shuffle 的性能,以及在 DataStream API 方面完善有限流作业的退出语义. 本文由 ...

  6. C++ 多态与虚拟:Class 语法语义

    1.object与class:在object-oriented programming编程领域,对象(object)有更严格的定义.对象是由数据结构和用于处理该结构的过程(称为methods)组成的实 ...

  7. 二:飞凌嵌入式FCU1201

    场景一 充电基础设施 场景二 现代机械加工对复杂化.精密化.大型化以及自动化设备的要求不断提高,数控机床设备日益得到广泛应用.数控机床设备对加工质量及效率起着关键乃至核心作用,其造价往往相当昂贵.因此 ...

  8. kali 设置 Java 版本,并更换为 1.8 版本

    kali 设置 Java 版本,并更换为 1.8 版本 1.安装 JDK 1.下载java 1.8 :https://repo.huaweicloud.com/java/jdk/8u202-b08/j ...

  9. C#/C++ 通过ODBC连接OceanBase Oracle租户

    概述 近期我们项目正处于将Oracle数据库迁移到OceanBase Oracle租户模式的阶段.考虑到我们项目采用了C++和C#混合开发,并且使用了多种技术,因此存在多种数据库连接方式.然而,针对C ...

  10. Elasticsdump 数据导入/导出

    目录 一.安装过程 安装NODE 通过npm安装elasticdump 二.数据导出 实操一 实操二 实操三 三.文件导入 一.安装过程 当前工具主要是用来对ES中的数据进行数据导入/导出,以及对数据 ...