JS-for循环

194 阅读1分钟

for循环

for(var i = 0; i < 10; i++){
    console.log(i);
}

步骤:

  1. 声明变量i = 0 ->只执行一次,放在外面也可以
  2. if(i<10){ console.log(i); }
  3. i++,最后执行,可以写在语句最下面
  4. 步骤2和步骤3往复,直到i不满足条件

可变形为:

var i = 0;
for(; i < 10;){
    console.log(i);
    i++;
}

相当于:

var i = 0;
while(i < 10){
    console.log(i);
    i++;
}

死循环:条件永远满足

var i = 1;
for(; i;){
    console.log(i);
    i++;
}

必须要有终止循环的条件

var i = 1;
for(; i;){
    console.log(i);
    i++;
    if(i == 11){
        i = 0; //break
    }
}

例:从0开始做加法,加到什么时候总和是小于100的

var sum = 0;
for(var i = 0; i < 100; i++){
    sum += i;
    if(sum >= 100){
        break;
    }
    console.log(i, sum);
}

例:100以内的数,跳过可以被7整除或带有个位数是7的数

for(var i = 0; i <= 100; i++){
    if(i % 7 == 0 || i % 10 == 7){
        continue;
    }
    console.log(i);
}

例:打印0-100的数,()只能有一句,不能写比较,{}不能出现i++

var i = 100;
for(; i--;){  //i = 0 就是假了
    console.log(i);
}

例:10的N次方

var n = 5;
var num = 1;
for(var i = 0; i < n; i++){
    num *= 10;
}
console.log(num);

例:n的阶乘

var n = 3;
var num = 1;
for(var i = n; i > 0; i--){
    num *= i;
}
console.log(num);

例:把789->987

var num = 789;
var a = num % 10;
var b = (num - a) % 100 / 10;
var c = (num - a - b * 10) / 100;
console.log('' + a + b + c);

例:打印100以内的质数

var count = 0;
for(var i = 2; i < 100; i++){
    for(var j = 1; j <= i; j++){
        if(i % j == 0){
            count++;
        }
    }
    if(count == 2){
        console.log(i);
    }
    count = 0;
}

例:斐波那契数列

var n = parseInt(window.prompt('请输入第几位'));

if(n <= 0) {
    console.log('输入错误');
} else {
    var n1 = 1,
        n2 = 1,
        n3;

    if(n <= 2) {
        console.log(1);
    } else {
        for(var i = 2; i < n; i++) {
            n3 = n1 + n2;
            n1 = n2;
            n2 = n3;
            console.log(n3);
        }
    }
}