while循环结构

318 阅读2分钟

do while

让用户输入一个字符,如果字符不是 'n' 就继续输入,如果输入的是 'n',结束循环。每次输入的字符,我们通过document.write写在body中.

do {
   var word = prompt('输入一个字符:')
   document.write(word);
} while (word != 'n')

关键字

js中有两个关键字,只能使用在循环中, 对循环的执行起到一定的控制作用

break 结束整个循环

for (var a = 1; a <= 5; a++) {
    document.write(a + '<br>');
    // 通过判断,当输出3以后
    if (a === 3) {
        // 结束整个循环
        break
    }
}

continue 结束这次循环,开始下一次循环

for (var a = 1; a <= 5; a++) {
    if (a === 3) {
        continue
    }
    document.write(a + '<br>');
}

双色球案例

// 定义一个存放数字的容器
var arr = []
// 页面中显示6个不重复的随机数字
for (var a = 1; a <= 6; a++) {
    // 生成一个1~21之间的随机数
    var num = getRandom(1, 21)
    // console.log(num);

    // 判断这个随机数是否在容器中
    var index = arr.indexOf(num)
    if (index >= 0) {
        // 表示容器中已经有这个数字了
        a-- // 这次循环重新来过,continue之后会有a++
        // 让后面的代码不执行了
        continue
    }
    // 将整个随机数放在容器中
    arr.push(num)
}
console.log(arr);

// 生成随机数字的函数
function getRandom(a, b = 0) {
    return Math.floor(Math.random() * Math.abs(a - b)) + Math.min(a, b)
}

打印所有闰年

页面上显示出1000-2000年中所有的闰年,并以每行四个数的形式输出

var year = 1000;
var i = 0; // 定义计数器
while(year<=2000){
    if(year%4==0 && year%100!=0 || year%400==0){
        document.write(year + "&nbsp;");
		i++;
		if(i%4==0){ // 如果计数器是4的倍数,表示到4个了应该换行了
			document.write("<br>");
		}
    }
    year++;
}

求20以内阶乘的和

var n = 0;
    for (var i = 1; i <= 20; i++) {
        var k = 1;
        for (var j = i; j >= 1; j--) {
            k *= j;
        }
        n += k;
    }
    console.log(n);

弹篮球

篮球从5米高的地方掉下来,每次弹起的高度是原来的30%,经过几次弹起,篮球的高度小于0.1米。

var h = 5;
var k = 0; // 定义计数器
while(h>=0.1){ // 不知道次数,所以使用while循环 - 条件是高度大于等于0.1,小于0.1的时候停止
    h*=0.3; // 高度每次是 原来高度的 30%
    k++; // 计数器每次自增
}
console.log(h);
console.log(k);

棋盘放芝麻

有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,棋盘上放的所有芝麻的重量

var a = 1;
var weight = 0.00001;
for(var i=1;i<=64;i++){
	a*=2; // 每个格子中的芝麻数都是前一个格子的2倍
}
console.log(a*weight);

输出素数

输出100-200之间所有的素数 (素数,就是除了1和自己本身,不能被别的数整除)

 for (var a = 100; a <= 200; a++) {
    var flag = true
    for (var b = 2; b < parseInt(a / 2); b++) {
      if (a % b === 0) {
        flag = false
        // console.log('不是素数');
        break
      }
    }
    if (flag === true) {
      console.log(a);
    }
  }