循环语句用于重复执行某个操作,它有多种形式。
一、while循环
- 要有个结束条件,有一个计数器,迭代条件(怎么计数的)
- while语法:
var 计数器的名字 = 0;
当循环条件为true时,执行循环体;
当循环条件为false时,结束循环。
while(循环条件) {
执行循环体;
计数器++;
}
var i = 0;
while(i <= 20) {
console.log("跑了" + i + "圈");
i++;
}
// 计算1-100之间所有整数的和
var i = 1;
var sum = 0;
while(i <= 100) {
sum += i; // sum = i + sum;
i++;
}
console.log(sum);
// 分别计算1-100之间奇数和偶数的和
var even = 2;
var odd = 1;
var sum_even = 0;
var sum_odd = 0;
while(even <= 100) {
sum_even += even;
even += 2;
}
while(odd <= 100) {
sum_odd += odd;
odd += 2;
}
console.log('1-100之间奇数和是:' + sum_odd);
console.log('1-100之间偶数和是:' + sum_even);
// 计算6的阶乘
var mul = 1;
var pro = 1;
while(mul <= 6) {
pro = pro * mul;
mul++;
}
console.log(pro);
// 求100以内7的倍数
var i = 1;
while(i <= 100) {
// 判断该数字能否被7整除
if(i % 7 == 0) {
console.log(i);
}
i++;
}
二、do...while循环
do...while循环换和while循环非常像,二者经常可以互相替代,但是do...while的特点是不管条件成不成立,都会先执行一次
do...while语法:
var i = 0;// 计数器
do {
循环体;
迭代条件;
}while(循环条件);
var i = 100;
var sum = 0;
do {
sum += i;// 循环体
i++;
}while(i <= 50);
console.log(sum);//100
var x = 3;
var i = 0;
do {
console.log(i);
i++;
} while(i < x);
三、for循环
while和do...while一般用来解决无法确认次数的循环,for循环一般在循环次数确定的时候比较方便,for
语句是循环命令的另一种形式,可以指定循环的起点、终点和终止条件。
for循环语法:
for(计数器; 循环条件; 迭代条件) {
循环体;
}
或
for(初始化表达式1; 判断表达式2; 自增表达式3) {
循环体4;
}
1-初始化表达式(initialize):确定循环变量的初始值,只在循环开始的时候执行一次。
2-判断(条件)表达式(test):每轮循环开始时,都要执行这个条件表达式,只有值为true,才继续进行循环。
3-自增表达式(increment):每轮循环的最后一个操作,通常用来递增循环变量。
执行顺序:1243 --- 243 --- 243... ...(直到循环条件变为false)
for(var i = 0; i <= 100; i++) {
console.log("跑了" + i + "圈");
}
// 1-100整数和
var sum = 0
for(var i = 1; i <= 100; i++) {
sum += i;
}
console.log(sum);
// 1-100奇数和偶数和
var sum1 = 0, sum2 = 0;
for(var i = 1; i <= 100; i++) {
if(i % 2 == 0) {
sum1 += i;
}else {
sum2 += i;
}
}
console.log('1-100之间奇数和是:' + sum2, '1-100之间偶数和是:' + sum1);
// 1-100能被3整除的数的和
var sum = 0;
for(var i = 0; i <= 100; i++) {
if(i % 3 == 0) {
sum += i;
}
}
console.log(sum);
四、for循环案例
// 1.7×5的星星矩阵
for (j = 1; j <= 5; j++) {
for (var i = 1; i <= 7; i++) {
// document.write()页面重构
document.write('☆');
}
document.write("<br/>");
}
// 2.等腰直角三角形星星阵
for (j = 1; j <= 9; j++) {
for (var i = 1; i <= j; i++) {
document.write('☆');
}
document.write("<br/>");
}
// 3.打印九九乘法表
document.write("<table cellspacing='9'>");
for (j = 1; j <= 9; j++) {
document.write("<tr>");
for (var i = 1; i <= j; i++) {
document.write("<td>" + i + '×' + j + "=" + i*j + "</td>");
}
document.write("</tr>");
}
document.write("</table>");
//斐波那契数列(若1,1,2,3,5,8,13,21...求第12个有多少)
var num1,num2,sum,i;
for(i = 3,num1 = 1,num2 = 1; i<= 12; i++){
sum = num1 + num2;
num1 = num2;
num2 = sum;
document.write(sum + '</br>');
}
补充:- document.write()用来在页面中打印,一般不建议使用,因为会清空页面结构
- 可以在打印中使用标签,能直接在网页中显现
- 所有for
循环,都可以改写成while
循环
- for
语句的三个部分(initialize、test、increment),可以省略任何一个,也可以全部省略