一.概述

1.程序是由一条条语句构成的

2.JS严格按照从上到下的顺序执行

3.可以用{}来为代码分组,称为代码块

(1){}只是分组功能
(2)同一组的语句要么都执行,要么都不执行

二.if语句(条件判断语句)

1.if语句:

  1. if (条件表达式){//条件为真执行代码块,为假跳过执行下面的语句
  2. 代码块;
  3. }

(1)if只能控制紧随其后的一条语句,若想控制多条就用{}进行分组
(2)建议即使只有一条语句也加{}
(3)会先对条件表达式进行计算

2.if…else语句格式:

  1. if (条件表达式){//条件为真执行代码块,为假跳过执行else的语句
  2. 代码块;
  3. }else{
  4. 代码块;
  5. }

3.if…else if…else if…else语句

  1. if (条件表达式1){
  2. 代码块;
  3. }else if(条件表达式2){
  4. 代码块;
  5. }else{
  6. 代码块;
  7. }

(1)会从上到下依次对条件表达式求值,满足条件执行当前语句并输出,不会在判断下面的条件表达式
(2)当条件表达式不正确时,继续判断下面的条件表达式,若都不满足,执行else的代码块
(3)该语句只会执行一块代码块,执行一处代码块后便退出if语句
(4)一般多配合逻辑表达式来作为条件表达式

三.switch语句(条件分支语句)

1.switch语句:

  1. switch(条件判断){
  2. case 条件1
  3. 语句;
  4. break
  5. case 条件2
  6. 语句;
  7. break
  8. case 条件3
  9. 语句;
  10. break
  11. ......
  12. default:
  13. 语句;
  14. break
  15. }

(1)在执行时会将case后的值与switch后的值进行全等比较,若为true执行该case块后所有代码(需要加break控制),为false则继续向下比较
(2)遇到break会跳出switch语句,无break会一直向下执行知道所有语句结束
(3)都不满足会执行default的代码块

2.案例:输入数字,输出对应月份

  1. <script>
  2. var num = prompt("请输入num:");
  3. switch(num){
  4. case "1":alert("现在是1月;");break;
  5. case "2":alert("现在是2月;");break;
  6. case "3":alert("现在是3月;");break;
  7. case "4":alert("现在是4月;");break;
  8. case "5":alert("现在是5月;");break;
  9. case "6":alert("现在是6月;");break;
  10. case "7":alert("现在是7月;");break;
  11. case "8":alert("现在是8月;");break;
  12. case "9":alert("现在是9月;");break;
  13. case "10":alert("现在是10月;");break;
  14. case "11":alert("现在是11月;");break;
  15. case "12":alert("现在是12月;");break;
  16. default:alert("你输入的值有误");
  17. }
  18. </script>

四.while语句(循环语句)

1.通过循环可以反复执行一段代码,这段代码叫循环体

2.语法:

  1. //while循环
  2. while(条件表达式){
  3. 语句;
  4. }
  5. //死循环:永远不会停止,除非关闭浏览器
  6. while(true){
  7. 语句;
  8. }
  9. //do...while循环
  10. do{
  11. 语句;
  12. }while(条件表达式)

3.while语句每次执行代码后都要在进行一次对条件表达式的判断,为false是跳出循环,所以一般都要在语句中设置改变条件的语句,称为更新表达式

4.do…while就是无论条件对错都要执行一次语句,先执行在判断

5.练习:每年利率5%,1000涨到5000要多少年

  1. <script>
  2. var n = 1000;
  3. var m = 0;
  4. while(n<=5000){
  5. n *= 1.05;
  6. m++;
  7. }
  8. document.write(m);
  9. </script>

五.for循环

1.语法:

  1. for(初始化表达式;条件表达式;更新表达式){
  2. 语句;
  3. }

2.与c中的for相同,先执行初始化表达式,然后执行条件表达式判断是否执行循环,为true则执行语句,然后执行更新表达式,然后在执行条件表达式判断……. 若为false则跳出循环

3.三个表达式均可省略,但是分号必须有

4.for循环可以嵌套

5.for循环可以起名,用来辨识。语法就是在for前写名字+冒号

(1)例如:outer:for(var i=0;i<10;i++){}//该循环叫outer

6.练习

  1. /*打印1-100的所有7的倍数的个数和总和*/
  2. var count=0;
  3. var sum=0;
  4. for(var i=1;i<=100;i++){
  5. if(i%7==0){
  6. count++;
  7. sum += i;
  8. }
  9. }
  10. alert("7的倍数有"+count+"个,总和为"+sum);
  11. /*打印水仙花数*/
  12. for(var i=100;i<=999;i++){
  13. ge=parseInt(i%10);
  14. shi=parseInt((i-bai*100)/10);
  15. bai=parseInt(i/100);
  16. if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
  17. console.log(i);
  18. }
  19. }
  20. /*99乘法表*/
  21. for(var i=1;i<=9;i++){
  22. for(var j=1;j<=i;j++){
  23. document.write(j+"*"+i+"="+i*j+"\t");
  24. }
  25. document.write("<br>")
  26. }

六.break和continue

1.break关键字:用于跳出循环语句或switch语句

(1)if语句不能用break或continue,if语句属于条件控制语句
(2)break只能跳出离他最近的那层循环,也可以通过break+名字指定跳出那个循环

  • 语法:break 名字;//该名字就是给for循环起的名字
  • 例如:break outer;//跳出outer循环

    2.continue关键字:用于跳过本次循环,直接开启下一次循环

    (1)continue同样对离他最近的循环生效
    (2)continue也可以指定名字来确定跳出那层

  • 语法:continue 名字;//该名字就是给for循环起的名字

  • 例如:continue outer;//跳过该次outer循环