2、流程语句

流程语句

三大流程语句

1、顺序结构
2、条件/选择/分支
3、循环

1、顺序结构:

概念:从上朝下执行的代码就是顺序
image

            例子:num1 = 10; num2 = 20; 这两个数的位置进行交换。
        var num1 = 10;
        var num2 = 20;
        // 中间变量
        var tmp = num1;
        num1 = num2;
        num2 = tmp;
        alert("num1: " + num1 + "num2: " + num2);

2、条件/选择/分支

image

==if 语句==
/*
单分支语句
格式:
  if(判断条件)
    执行语句;
究极版本:
  if(判断条件){
    执行语句;
    ...
}
功能:如果if中判断条件为true,就直接去执行紧跟着if语句后面的一条语句,否则如果为false,就不去执行紧跟着if语句后面的这条语句。
【注】if语句仅能控制它后面的一条语句是否能被执行。  
大括号:
{}  
作用:使用大括号,括起来的多条语句,可以当做一条语句去执行。
*/

/*          var num = 7;
            if(num % 2 == 0){
                alert("这是一个偶数");
                alert(1);
            }*/

            /*
                求两个数的最大数
            */
            /*var num1 = 10;
            var num2 = 20;
            if(num1 > num2){
                alert(num1);
            }

            if(num1 < num2){
                alert(num2);
            }*/

            /*var num1 = 10;
            var num2 = 20;
            if(num1 > num2){
                alert(num1);
            }else{
                alert(num2);
            }*/

/
双分支语句
格式:
if(判断条件){
  判断条件true,执行语句;
}else{
  判断条件false, 执行语句;
}
/

/*var num = 7;
            if(num % 2 == 0){
                alert("这是一个偶数");
            }else{
                alert("这是一个奇数");
            }*/

/
多分支语句
格式:
if(判断语句1){
  执行语句1;
}else if(判断语句2){
  执行语句2;
}...
else{
当上述条件都不成立的时候执行;
}
/

            /*var x = 11;
            var y = 0;
            if(x < 1){
                y = x;
            }else if(x >= 1 && x < 10){//1<=x<10
                y = 2 * x + 1;
            }else{
                y = 5 * x - 17;
            }
            alert(y);*/

            /*
                闰年
                1、能被400整除
                2、能被4整除但是不能被100整除
            */

3、switch多分支语句

/
多分支语句
格式:
switch(表达式){
  case 值1:
    执行语句1;
    break;
  case 值2:
    执行语句2;
    break;
  ...
  default:
    上述所有条件都不符合,执行这里;
    break;
}
流程:++判断表达式的结果,和==case后面==值进行==匹配==,匹配成功以后,执行该值对应的执行语句。++
1、如果判断结果是确定的值,优先使用swtich语句。
2、swtich语句运行效率比if语句的运行效率高。
注意:
1、break一定不能省略,事件会被穿透。
2、default必须要写。
/

/*          var grades = "E";
            switch(grades){
                case "A":
                    alert("80~100");
                    break;
                case "B":
                    alert("70~80");
                    break;
                case "C":
                    alert("60~70");
                    break;
                case "D":
                    alert("<60");
                    break;
                default:
                    alert("error");
                    break;
            }*/

练习:==利用case穿透简化代码==

/*
                2.输入月份,显示当月的天数
                    要求:1) 利用 case穿透简化代码
            */
            var month = 2;
            var year = 2018;

            switch(month){
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    alert("31天");
                    break;
                case 2:
                    //判断是否是闰年
                    if(year % 400 == 0 || year % 4 == 0 && year % 100 != 0){
                        alert("29天");
                    }else{
                        alert("28天");
                    }
                    break;
                default:
                    alert("30天");
                    break;
            }

4、三目运算符

/
三目运算符
格式:
  表达式1 ? 表达式2 : 表达式3;
功能:先去判断表达式1是否为true,如果为true,执行表达式2,否则执行表达式3。
/

/*var num = 9;

            num % 2 == 0 ? alert("这是一个偶数") : alert("这是一个奇数");*/

            /*if(num % 2 == 0){
                alert("这是个偶数");
            }else{
                alert("这是个奇数");
            }*/

5、循环语句

image

/
循环
while 循环
do while 循环
for 循环

/

/
==1、while循环==
格式:
  while(循环条件){
    循环语句;
   }
功能:先去判断循环条件是否成立,如果成立执行循环语句,知道循环条件不成立的时候,循环终止。
/

/*
                1 ~ 100的和
            */
            var i = 1;
            var sum = 0;
            while(i <= 100){
                sum += i;
                i++; //每一次循环,都会进行+1操作。
            }
            alert(sum);

            document.write("1<br />2");

习题

/*
                1、打印100以内 7的倍数
                2、打印100以内的奇数
                3、打印100以内所有偶数的和
                4、打印图形
                * * * * * * * * * *
                * * * * * * * * * *
                * * * * * * * * * * 
                * * * * * * * * * *

            */

            /*
                【注】小心造成死循环
            */
            /*var i = 1;
            var sum = 0;
            while(i <= 100){
                // if(i % 7 == 0){
                //  document.write(i + "<br />");
                // }

                if(i % 2 != 0){
                    document.write(i + "<br />");
                }else{
                    sum += i;
                }
                i++;
            }

            alert(sum);*/


            var i = 1;
            while(i <= 40){
                document.write("*");
                if(i % 10 == 0){
                    document.write("<br />");
                }
                i++;
            }

/
2、do...while循环(了解)
格式:
  do{
    循环体
   }while(循环条件);
【注】最后一定要加分号,会有出错隐患
【注】不管循环条件是否成立,先去运行一次再说。
/

         var i = 1; 
         var sum = 0; //用于记录累加的和
        /*do{
            sum += i;
            i++;
        }while(i <= 100);*/
        // alert(sum);

        /*while(i <= 100){
            sum += i;
            i++;
        }
        alert(sum);*/
    
    
        var i = 5;
        while(i > 10){
            alert("while");
        }
        do{
            alert("do while");
        }while(i > 10);
        

/*
【总结】1、循环条件仔细斟酌。(经验,慢慢来)
2、代码规范
3、运算符前后+空格,逗号、分号还有别的语句,加一个空格。
*/

/*
==3、for循环==
格式:
  for(表达式1; 表达式2; 表达式3){
    循环语句;
  }
功能:
1、先去执行表达式1,有且只执行一次。
2、判断表达式2,如果true,执行循环语句,否则终止
3、执行表达式3,再去判断表达式2,重复2,3操作。
*/

// 1 ~ 100和
            /*
                表达式1:循环初始变量
                表达式2:循环条件
                表达式3:累加
            */
            /*var i = 1;
            var sum = 0;
            while(i <= 100){
                sum += i;
                i++;
            }*/
            var sum = 0;
            for(var i = 1; i <= 100; i++){
                sum += i;
            }
            alert(sum);

/
for循环使用频率是最高的。
/

练习

打印三角形:
/
习惯上是从0开始的。
循环的时候,初始值也要从0开始。
/

/*
                1、打印五行
                        半角 占一个字符的大小
                &ensp;  全角 占一个汉字的大小 = 两个半角


                【注】循环变量 i j k 
            */
            for(var i = 0; i < 5; i++){

                //打印# 总行数 - 当前圆圈数
                for(var k = 0; k < 5 - i - 1; k++){
                    document.write("#");
                }

                //2、打印当前圆圈的个数打印出来  ○
                for(var j = 0; j <= i; j++){
                    document.write("○");
                }
                document.write("<br />");
            }

            /*
                5行
                第0行  4个空格 1个圆圈
                第1行  3个空格 2个圆圈
            */

image

break与continue

/
对于switch break 防止条件语句穿透。
/

/*
循环中
break:
功能:终止当前循环,只能终止当前一层循环。

continue:
功能:跳过这次循环,直接入下一次循环。
*/

/*
                当循环到5,结束循环
            */
            /*for(var i = 0; i < 100; i++){
                if((i + 1) == 5){
                    break;
                }
                document.write((i + 1) + "<br/>");
            }*/

            for(var i = 0; i < 100; i++){
                if((i + 1) == 5){
                    // break;
                    continue;
                }
                document.write((i + 1) + "<br/>");
            }

死循环 与 不规范循环写法

/*
                死循环  停不下来
                【注】循环条件永远成立。
            */
            /*while(true){

            }*/

            /*while(1){
                
            }*/


            /*for(;;){

            }*/

            /*
                不规范的for循环
            */
            for(var i = 0; i < 100; i++){

            }

            var i = 0;
            for(; i < 100; i++){
                
            }

            var i;
            for(i = 0; i < 100; i++){
                
            }

            for(var i = 0; i < 100;){
                i++;
            }

补充

/*
赋值运算符
= 赋值
被赋值的变量 = 表达式;

            关系运算
            == !=  ===(全等/恒等)值和数据类型都相等  !==

            基本数据类型:
            number: 数字
            string: 字符串
            boolean: 布尔值 

            null
        */
        var num = null;
        var num = 0;

        /*
            switch语句 更侧重于匹配
            if 语句    更侧重于判断
        */
        /*
            【注】问问题一定要具体到问题的某一个点。
        */
打印一行五个数,五行
            var tmp = 1;

            for(var i = 0; i < 5; i++){
                //循环五次打印五个数
                for(var j = 0; j < 5; j++){
                    document.write(tmp + " ");
                    tmp++;
                }
                document.write("<br />");
            }

习题

/*          1、输入年月日,输出当前年第几天。

                2018.05.17
                month 
            */
            var year = 2018;
            var month = 5;
            var date = 17;
            var currentDay = 0;
            switch(month){
                case 12:
                    currentDay += 30;
                case 11:
                    currentDay += 31;
                case 10:
                    currentDay += 30;
                case 9:
                    currentDay += 31;
                case 8:
                    currentDay += 31;
                case 7:
                    currentDay += 30;
                case 6:
                    currentDay += 31;
                case 5:
                    currentDay += 30;
                case 4:
                    currentDay += 31;
                case 3:
                    currentDay += 28;
                case 2:
                    currentDay += 31;
                case 1:
                    currentDay += date;
                    break;
                default:
                    alert("error");
                    break;
            }
            if(month > 2){
                //判断闰年
                
            }

            alert(currentDay);

猜你喜欢

转载自www.cnblogs.com/zhongchao666/p/9275462.html