JS day6 流程控制

一.顺序结构 :从上朝下执行

例如:

    <script type="text/javascript">
    //题目:输入两个数,然后交换两个数,再输出他们交换后的结果
        var num1=1;
        var num2=2;
        var tem=num1;
        num1=num2;
        num2=tem;
        alert("num1:"+num1+"num2:"+num2);  // 2 1
    </script

二.选择结构 :根据不同的情况,执行对应代码

例如:
1.if else双分支

<script type="text/javascript">
    //题目1:判断一个数是偶数还是奇数?
        var num3=9;
        if (num3%2==0){   //注:if成立与否只能决定if后面一条语句的执行,{}中的语句当做一条对待
            alert("这是一个偶数")
        }
        else{
            alert("这是一个奇数")
        };
     //题目2:判断两个数字中的最大数
        var num4=1;
        var num5=2;
        var max=null;
        if (num4>num5) {
            max=num4; 
        } else {
            max=num5; 
        }; 
        alert("这两个数中的最大数是:"+max);
     //题目3:判断一个年份是瑞年还是平年;
            /*
                闰年条件:
                1.可以被400整除
                    或者
                2.可以被4整除,但是不能被100整除           
            */
        var year=2014;
        if (year%400==0 || year%4==0 && year%100!=0) {
            alert("为闰年");          
        } else {
            alert("不是闰年");           
        };
    </script>

2.if else多分支和嵌套

    <script type="text/javascript">
            var y=85;
            if (y>=85) {
                alert("优秀"); //在这里进行嵌套 
                if(y>=95 && y<100){
                     alert("奖励5快钱");
                }else if(y>=90 && y<95){
                    alert("奖励1快钱");
                }else{
                    alert("奖励辣条一包");
                }            
            }else if (y>=75 && y<85){
                alert("良好");              
            }else if (y>=60 && y<75){
                alert("及格");
            }else {
                alert("不及格");}
    </script>

3.switch多分支
:表达式的结果等于哪个case的常量,则执行其后的语句,然后break跳出.若都不成立,执行default.
:break不能省略,否则会造成事件穿透.
:分支较少用if else,较多则用switch
例如:

    <script type="text/javascript">
        var grade="B";       
        switch (grade) {
            case "A":
                alert("80~100");                   
                break;
            case "B":
                alert("70~79");              
                break;
            case "C":
                alert("60~69");               
                break;
            case "D":
                alert("小于60");               
                break;        
            default:
                alert("error");            
                break;
        }
    </script>

4.三目运算符/条件运算符
[格式]
表达式1 ? 表达式2 : 表达式3;
[执行过程]
若表达式1为真,则求解2;若表达式1为假,则求解3.
例如:求两个数的最大值?

<script type="text/javascript">
      var num1=10;
      var num2=20;
      var max=num1>num2 ? num1 : num2;
      alert(max);
</script>

三.循环结构 :重复做一件事情

1.while循环
[格式]:
while(表达式){循环语句;}
[注]
①.先判断表达式是否成立,成立则执行
②.循环条件中使用的变量(循环变量)需要初始化
③.循环体中要有结束循环的条件,否则会造成死循环
④.循环体内,可以写若干合法的js代码,例如if等
题目:
①.计算1~100的和

var i=1;
    var sum=0;
    while (i<=100) {
        sum+=i; 
        i++;    
    }
    alert(sum);

②.打印100以内7的倍数

    var sum=1;
    while (sum<=100) {
        if (sum%7==0) {
            document.write(sum +"<br/>");   
        }   
        sum++;  
    }

③.打印100以内的奇数

    var i=1;
    while (i<=100) {
        if (i%2!=0) {
            document.write(i+"<br/>")          
        }
        i++;
    }

④.打印100以内所有的偶数和

    var i=1;
    var sum=0;
    while (i<=100) {
        if (i%2==0) {
            sum +=i;                        
        }       
        i++;
    }
    document.write(sum+"<br/>")

⑤.打印图形

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

2.do while循环
[格式]:do{
循环语句;
}while(循环条件);
[注]:①.最后的分号不要忘记
②.循环条件中使用的变量需要经过初始化
③.循环体中要有结束循环的条件

例如: 计算1~100的和

    var i=1;
    var sum=0;
    do {
        sum +=i;
        i++;        
    } while (i<=100);
    alert (sum);  //5050

whlie和do while的区别:
1.while循环先判断循环条件,再执行语句
2.do while循环先执行一次语句,再判断循环条件

3.for循环
[格式]:
for(表达式1;表达式2;表达式3;){
循环语句;
}
[执行顺序]:
①.先求解表达式1(只求一次)
②.求解表达式2,若为真(非0),则执行循环语句,然后求解表达式3;若为假,则结束循环
**[注]?*一般使用for循环比较多
[题目]:
计算1~100的值?

		var sum=0;
        for (var i=1;i<=100;i++) { //变量初始化,循环条件,循环变量累加
            sum+=i;
        }
        alert (sum);   //5050

for循环另外的写法,将初始变量写在外面

		var sum=0;var i=1;
        for (i<=100;i++;) { //循环条件,循环变量累加
            sum+=i;
        }
        alert (sum);   //5050

或者

        var sum=0;var i;
        for (i=1;i<=100;i++) {
            sum+=i;
        }
        alert (sum);   //5050

4.循环的嵌套
例:①打印出三角形
每一行打印*的个数和当前行数相同

*
**
***
****
*****
for(var i=0;i<5;i++){ //第一层循环决定打印了几行
            for(var j=0;j<=i;j++){  //第二层循环决定每行打印几个
                document.write("*");
            }
            document.write("<br/>");  
        }   

②打印出三角形
每一行打印的空格等于总行数-当前行数
每一行打印*的个数和行数一致

    *
   **
  ***
 ****
*****
    for(var i=1;i<=5;i++){  //打印出5行
        for(var k=1;k<=5-i;k++){  //每行打印的空格
            document.write("&ensp;");
        }
        for(var j=1;j<=i;j++){  //每行打印的*
            document.write("*");
        }
        document.write("<br/>");
    }    

5.break和continue
*break语句
1.在switch语句中使流程跳出switch
2.在循环语句中使流程跳出当前的循环
例如:

for(var i=1;i<=100;i++){
            if(i==77){
                break;  //到77停止打印,只能打印到76
            }
            document.write(i+"<br/>")
        }

*continue语句
[注]:只能在循环语句中使用,使本次循环结束,接着进行下次是否执行的判断
例如:

    for(var i=1;i<=100;i++){
            if(i==77){
                continue; //打印出1~100,没有77 (到77会结束本次循环,继续进行下次)
            }
            document.write(i+"<br/>")
        }   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值