JavaScript 循环for、while、do while
一、for 循环
// 1-10; 循环
// i++ 自增i,控制循环结束
for(var i = 1; i <= 10; i++){
document.write(i+',');
}
document.write("<hr>跳出循环时 i = "+i);
如图所示:
// 1-20的偶数
for(var i = 1; i <= 20; i++) {
if (i % 2 == 0) {
document.write(i+",");
}
}
如图所示:
// 计算 1-100 的和
var sum = 0;
for(var i = 1; i <= 100; i++) {
sum = sum + i;
}
document.write("1-100的和是 "+sum);
如图所示:
// 循环嵌套
// 外层控制的是行数,内层控制的是每行输出的列数
// 外层循环执行一次,内层循环时执行10次;
for (var n = 0; n < 10; n++){
console.log("n="+n);
for (var i = 0; i < 10; i++){
document.write("?");
console.log("i="+i);
}
document.write("<br>");
}
如图所示:
for (var n = 1; n <= 10; n++){
console.log("n="+n);
for (var i = 0; i < n; i++){
document.write("?");
console.log("i="+i);
}
document.write("<br>");
}
如图所示:
九九乘法表:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>循环</title>
<style>
.tb {
border-collapse: collapse;
}
.tb td {
padding: 5px 20px;
}
</style>
</head>
<body>
<script>
document.write("<hr>");
document.write("<table class='tb' border='1'>");
for (var n = 1; n < 10; n++){
document.write("<tr>");
for (var i = 1; i <= n; i++){
document.write("<td>"+i+"x"+n+"="+i*n+"</td>");
}
document.write("</tr>");
}
document.write("</table>");
document.write("<hr>");
document.write("<table class='tb' border='1'>");
for (var n = 1; n < 10; n++){
document.write("<tr>");
for (var i = 1; i < 10; i++){
if (i <= n) {
document.write("<td>"+i+"x"+n+"="+i*n+"</td>");
} else {
document.write("<td></td>");
}
}
document.write("</tr>");
}
document.write("</table>");
</script>
</body>
如图所示:
/*
break 语句用于跳出循环。
continue 用于跳过循环中的一个迭代。
*/
for (i = 0; i < 10; i++) {
if (i ==2 ) {break;}
// 当if中只有一条语句,可以省去 {},该行语句也属于if语句
document.write(i);
}
document.write("<hr>");
for (i = 0; i < 10; i++) {
// i ==3,4..还能继续执行,只有2的时候跳出
if (i ==2 ) {continue;}
document.write(i);
}
如图所示:
二、while循环
var i = 0;
while (i < 10 ) {
document.write(i);
i++;
}
如图所示:
var n = 0;
while(true) {
document.write(n);
n++;
if(n == 20){ break; }
}
如图所示:
// 两个数的最大公约数是指能同时整除他们的最大正整数
var a = 30, b = 12;
// 20 / 6 = 3...2
// 6 / 2 = 3...0
while (true) {
var yushu = a % b;
// 余数如果为0,那么除数就是最大公约数
if(yushu == 0) {
// 找到了
console.log("最大公约数="+b);
break;
}
// 继续用除数 除以 余数
a = b;
b = yushu;
}
如图所示:
var a = 60, b = 33, value;
var yu;
while(yu !=0) {
//
yu = a % b;
console.log(b,yu);
//保存除数,最终是最大公约数
value = b;
// 继续用除数 除以 余数
a = b;
b = yu;
}
console.log("找到最大公约数:"+value);
如图所示:
三、do while 循环
// 先执行,再判断,即使条件是错误的,也会执行一次
var n = 0;
do {
n++;
document.write(n);
}while (n < 10);
如图所示: