JavaScript第二章 流程控制
2026/9/15 7:23:13 网站建设 项目流程

2. 流程控制

2.1 if分支

  • if 结构if(条件){代码块}
// 案例1:输入一个年龄,判断是否成年?若成年输出”成年“即可varage1=prompt('请输入年龄');if(age1>=18){alert('您的年龄为'+age1+',您已成年');}
  • if-else 结构if(条件){代码块1}else{代码块2}
// 案例2:输入一个年龄,判断是否成年?若成年输出”成年“,否则输出”未成年“varage2=prompt('请输入年龄');if(age2>=18){alert('您的年龄为'+age2+',您已成年');}else{alert('您的年龄为'+age2+',您未成年');}
  • else if 结构if(条件){代码块}……else if(条件n){代码n}else{代码块n+1}
// 案例3:输入一个年龄及等级,判断当前年龄是否成年,若未成年则免费入园,如果成年且VIP等级大于3也免费入园,否则需缴纳90元门票varage3=prompt('请输入年龄');varlevel3=prompt('请输入等级');if(age3<18){alert('您的年龄为'+age3+',您未成年,免费入园');}elseif(age3>=18&&level3>3){alert('您的年龄为'+age3+',您已成年,VIP等级大于3,免费入园');}else{alert('您的年龄为'+age3+',您已成年,VIP等级小于等于3,需缴纳90元门票');}

2.2 switch分支

  • 格式:

    switch(key){

    case 表达式1:

    代码1;

    break;

    case 表达式2:

    代码2;

    break;

    ​ ……

    case 表达式n:

    代码n;

    break;

    default:

    代码 n+1;

    }


  • 规则
    1. switch-case 结构中,switch 括号中匹配的 key 匹配 case 后的 value,若匹配上则执行 case 中的代码;若没匹配上则执行 default 中的内容,如果没有 default 则不执行任何内容,default 为最终出口。
    2. key 和 value 都可以为表达式(计算的结果),也可以为具体的数据内容。
    3. break 可以不写,但若匹配到的 case 无 break,则会继续向下执行下一个 case,直到遇到具备 break 的 case为止,或执行到最终出口 default。
    4. switch 的运行速度比 if 分支快,因此推荐在合适时尽量使用 switch。
// 案例1:输入一个等级,判断等级是否为1、2、3、4、5varlevel=prompt('请输入等级');switch(level){case'1':alert('您的等级为1');break;case'2':alert('您的等级为2');break;case'3':alert('您的等级为3');break;case'4':alert('您的等级为4');break;case'5':alert('您的等级为5');break;default:alert('您输入的等级有误');}

2.3 while循环

  • while:while(循环条件){循环体}
// 案例1:输出3次“hello JS”vari=0;while(i<3){alert('hello JS');i++;}// 案例2:自造死循环(利大于弊,应用:程序的运行 弊端:造成内容大量使用而造成资源浪费)while(1>0){alert('hello world');}// 案例3:输出1-100之间的和i=0;varsum=0;while(i<=100){sum+=i;i++;}console.log("1-100之间的和为:"+sum);// 案例4:输出1-100之间的偶数和i=0;sum=0;while(i<=100){if(i%2==0){sum+=i;}i++;}console.log("1-100之间的偶数和为:"+sum);// 案例5:计算1-100之间的和,当i为50时,终止循环i=0;sum=0;while(i<=100){if(i==50){break;}sum+=i;i++;}console.log("1-100之间的和为:"+sum);// 案例6:计算1-100之间的和,当i为50时,跳过50,继续循环计算i=0;sum=0;while(i<=100){if(i==50){i++;continue;}sum+=i;i++;}console.log("1-100之间的和,跳过50为:"+sum);

  • do-while:do{循环体}while(循环条件)
// 案例:输入用户名和密码判断是否登陆成功,否则重新输入do{varusername=prompt("用户名:")varpassword=prompt("密码:")}while(username!="张三"||password!="123")
  • while 和 do-while 的区别:do-while 无论条件满足或不满足,都会执行至少一次的循环体

break:跳出所有循环

continue:跳出单次循环

2.4 for循环

  • 格式:for(循环变量;循环条件;循环变量变化){循环体}
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>for循环</title></head><body></body></html><script>// 案例1:死循环// for(;;){循环体}// 案例2:计算0-100的和varsum=0;for(leti=0;i<101;i++){sum+=i;}console.log("0-100的和为:"+sum);// 案例3:for循环的变形:循环变量和其变化可以改变位置,但两个分号不能动sum=0;leti=0;for(;i<101;){sum+=i;i++;}console.log("0-100的和为:"+sum);// 案例4:for循环嵌套(九九乘法表打印)for(leti=1;i<=9;i++){for(letj=1;j<=i;j++){console.log(i+" * "+j+" = "+i*j);}}</script>

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询