JavaScript 流程控制
1. 选择结构
if
语句if
语句从上到下顺序执行,使用条件判断来决定执行的代码块。
示例代码:
<script>
var score = 73;
if (score >= 90) {
console.log("优秀");
} else if (score >= 80) {
console.log("良好");
} else if (score >= 70) {
console.log("中等");
} else if (score >= 60) {
console.log("及格");
} else {
console.log("不及格");
if (score < 10) {
console.log("直接退学");
} else {
console.log("重修");
}
}
</script>
switch
语句switch
语句在给定的值上匹配多个情况(case
),适用于有限的分支选择。
示例代码:
<script>
var score = parseInt(73 / 10);
switch (score) {
case 10:
case 9:
console.log("优秀");
break;
case 8:
console.log("良好");
break;
case 7:
console.log("中等");
break;
case 6:
console.log("及格");
break;
default:
console.log("不及格");
break;
}
</script>
2. 循环结构
for
循环
适用于已知循环次数的情况。
<script>
for (var i = 1; i <= 10; i++) {
console.log(i);
}
</script>
while
循环
在条件为真时重复执行代码块。
<script>
var i = 1;
while (i <= 10) {
console.log(i);
i++;
}
</script>
do...while
循环
先执行代码块,再判断条件是否为真。
<script>
var i = 20;
do {
console.log(i);
i++;
} while (i <= 10);
</script>
3. 实战练习
水仙花数
计算100到999之间的水仙花数。
<script>
for (var i = 100; i < 1000; i++) {
var a = i % 10;
var b = parseInt((i % 100) / 10);
var c = parseInt(i / 100);
if (a * a * a + b * b * b + c * c * c === i) {
document.write(i + "<br>");
}
}
</script>
1 到 100 的累加和(3种循环)
<script>
var sum = 0;
for (var n = 1; n <= 100; n++) {
sum += n;
}
document.write(sum);
</script>
菱形图案
输出使用“*”和“-”组成的菱形图案。
<script>
for (var i = 0; i < 4; i++) {
for (var j = 0; j < 3 - i; j++) {
document.write("-");
}
for (var k = 0; k < 2 * i + 1; k++) {
document.write("*");
}
document.write("<br>");
}
for (var i = 0; i < 3; i++) {
for (var j = 0; j <= i; j++) {
document.write("-");
}
for (var k = 0; k < 5 - 2 * i; k++) {
document.write("*");
}
document.write("<br>");
}
</script>
九九乘法表
<script>
for (var a = 1; a < 10; a++) {
for (var b = 1; b <= a; b++) {
document.write(b + "*" + a + "=" + a * b + " ");
}
document.write("<br>");
}
</script>
JavaScript 提供了多种流程控制结构,可以通过组合使用来实现复杂的逻辑和任务。