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