JS 中的流程控制用于控制程序的执行流程,使程序能够根据条件或循环的结果来选择不同的路径或重复执行特定的代码块。
顺序结构:从上到下、从左到右执行。
分支结构:
循环结构:
// 语法
var num1 = 10;
var num2 = 20;
if(num1 > num2){
console.log("大于成立");
}
// 语法
var num1 = 10;
var num2 = 20;
if(num1 > num2){
console.log("大于成立");
}else{
console.log("大于不成立");
}
var num3 = parseInt(prompt("please enter an number:"));
if(num3 % 2 == 0){
console.log("偶数");
}else{
console.log("奇数");
}
// 判断成绩所在的等级区间
var score = Number(prompt("请输入成绩"));
if(!isNaN(score)){ // 如果输入的是数字
if(score >= 90 && score <= 100){
console.log("A");
}else if(score >= 80){
console.log("B");
}else if(score >= 70){
console.log("C")
}else{
console.log("D");
}
}else{
console.log("输入的成绩有误");
}
// 判断年份是不是闰年
var year = 2022;
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
console.log("闰年");
}else{
console.log("平年");
}
// 判断各等级所在的分数区间
var level="A";
switch(level){
case "A":console.log("90~100");break; // case 中的值,和 level 是严格模式(===,即必须值和类型都相等)
case "B":console.log("80~90");break;
case "C":console.log("70~80");break;
default:console.log("不及格"); // default是可以省略的
}
// 判断各月份的天数
var month=3;
switch(month){
case 1: // case中的值,和month是严格模式(===,即必须值和类型都相等)
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:console.log("31天");break; // 前面的 1、3、5、7、8、10,可以和 12 共享一个输出结果
case 2:console.log("28天");break;
case 4:
case 6:
case 9:
case 11:console.log("30天");break // 前面的 4、6、9,可以和 11 共享一个输出结果
default:console.log("输入错误!");
}
switch-case注意的问题:
- 一个条件结束以后,必须要以 break 结束。
- switch 中的值和 case 后面的值,是严格比较模式,即 === 比较,必须值和类型都相等。
- 可以连续几个 case,共享一个输出结果。
// while循环语句(先判断,再循环)
var i = 1;
while(i <= 10){
console.log(i);
i++;
}
// do while循环语句
// 先循环,再判断,至少执行一次循环体
var i = 1;
do{
console.log(i);
i++;
}while(i <= 10);
// for 循环语句
for(var i = 1; i <= 10; i++){
console.log(i);
}
// 1、输出乘法口诀表
// 控制行数
for(var i=1; i<=9; i++){
// 控制每一行有几个表达式
for(var j=1; j<=i; j++){
document.write(j+'*'+i+'='+j*i);
}
document.write('<br />');
}
// 2、输出乘法口诀表(表格版)
// 输出表格
document.write("<table border='1' cellpadding='5' cellspacing='0'>");
// 控制的行数
for (var i = 1; i <= 9; i++) {
// 输出行
document.write("<tr>");
// 控制每行的表达式个数
for (var j = 1; j <= i; j++) {
// 输出单元格
document.write("<td>");
document.write(i + "*" + j + "=" + i * j);
document.write("</td>");
}
document.write("</tr>");
}
document.write("</table>");
// 循环中的 continue 和 break
continue; // 跳过此次循环,继续下一次循环
break; // 结束循环体(只能结束 break 所在的循环,外层循环仍然会继续执行)