for循环
for(var i = 0; i < 10; i++){
console.log(i);
}
步骤:
- 声明变量i = 0 ->只执行一次,放在外面也可以
- if(i<10){ console.log(i); }
- i++,最后执行,可以写在语句最下面
- 步骤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);
}
}
}