zoukankan      html  css  js  c++  java
  • JS流程控制语句

    ## 流程控制语句
    **3-1条件语句**
    给定一个判断条件,并在程序执行过程中判断该条件是否成立。
    *3-1-1单分支语句*
    由一个if组成,如果条件成立,则进入代码块开始执行语句。
    语法:

    if(条件){
    //条件为真时执行的代码
    }
    示例:
    
    let age = 20; 
    if(age >= 18){ 
    console.log("你已经是成年人了"); 
    }

    如果条件不是一个布尔值,那么会被自动转换为布尔值
    示例:

    if(1){
    console.log("Hello"); 
    }

    *3-1-2双分支语句*
    就是由两个分支线,如果if条件不成立,那么就会跳入到else语句中,语法时:

    if(条件){
    //条件为真时要执行的代码
    }else{
    //条件为假时要执行的代码
    }
    示例:
    
    let age = 16; 
    if(age >= 18){ 
    console.log("你已经是成年人了");
    }else{ 
    console.log("你还是未成年人");
    }


    **三目运算符**
    if...else语句的一个缩写方式,就是使用三目运算符 ?:
    语法:条件 ? (条件为真时执行的代码):(条件为假时执行的代码)

    示例:
    
    let age = 16; 
    let result = age>=18 ? "你已经成年了" : "你还是未成年"; 
    console.log(result);//你还是未成年
    
    使用三目运算符找出三个数最大的那个数:
    示例: let a
    = 3,b = 8,c = 5; let max = a>b ? (a>c?a:c) : (b>c?b:c); console.log(max);//8

    *3-1-3多分支语句*
    多个if...else语句可以组合在一起,形成逻辑决策树,
    语法:
    if(条件){
    //执行语句
    }else if(条件){
    //执行语句
    }else{
    //执行语句
    }

    **switch语句**
    有一种比多分支结构更清晰的语句结构,就是switch语句。语法:
    switch(条件){
    case 1:
    //执行语句
    break;
    case 2:
    //执行语句
    break;
    case 3:
    //执行语句
    break;
    default:
    //执行语句
    }
    *break关键字*
    break时用于跳出某个case,如果不书写break的话,进入case以后会继续进入后面的case语句。
    *default关键字*
    default用于书写默认的条件,如果前面的都不满足的话,就进入到default语句里面。
    **3-2循环语句**
    *3-2-1while循环*
    whlie循环是比较常见的一种,语法为:
    whlie(表达式){
    //循环体
    }

    示例:从1加到100
    
    let i = 1,sum = 0;
        while(i <= 100){ 
        sum += i; 
        i++; } 
    console.log(sum);//5050

    无穷循环又叫死循环
    *3-2-2do...whlie循环*
    首先执行一次循环体,然后检测循环条件表达式的值是否为真,是真的话,则重复执行循环语句。
    **3-2-3for循环**
    for循环是最常见的一种循环。
    语法为:
    for(表达式1;表达式2;表达式3){
    //循环体
    }
    执行的顺序为:首先执行表达式1,然后进行表达式2的判断,如果表达式2成立,那么执行循环体,循环体执行结束后,进行表达式3,然后回头再看表达式2是否成立,成立就执行循环体,不成立就循环结束。

    示例:for循环实现从1加到100
    
    let sum = 0; 
    for(let i=1;i<=100;i++){ 
    sum += i; 
    } 
    console.log(sum);//5050
    另一种方式:
    let i = 1,sum = 0;
    for(;i<=100;){ 
    sum += i; 
    i++;
    } 
    console.log(sum);//5050

    *遍历数组*
    使用for循环来对数组进行遍历。
    示例:

    let arr = [1,2,3,4,5];
    for(let i=0;i<arr.length;i++){ 
    console.log(arr[i]); 
    }

    在使用for循环来遍历数组的时候,使用一个变量来存储数组的长度,这样可以提升程序的小路,因为不用每次都取重新计算数组的长度。
    示例:

    let arr = [1,2,3,4,5]; 
    for(let i=0,j=arr.length;i<j;i++){ 
    console.log(arr[i]); 
    }

    **3-2-4循环的嵌套**
    我们可以把一个循环放在另一个循环里面,从而构成循环的嵌套,里面的循环称之为内层循环,外面的循环称之为外层循环,外层循环一次,内层循环就是把自己的全部循环执行完。
    循环嵌套示例:打印九九乘法表

    
    let str = "";
    for(let i=1;i<=9;i++){ 
    for(let j=1;j<=i;j++){ 
    str += i + "*" + j + "=" + (i*j) + " "; 
    } 
    console.log(str); 
    str = ""; 
    } 
    


    使用双层for循环遍历一个二维数组:

    let arr = [ 
    ["Bill",20], 
    ["Lucy",23], 
    ["David",25], 
    ["Lily",18] ]; 
    for(let i=0;i<arr.length;i++){ 
    for(let j=0;j<arr[i].length;j++){ 
    console.log(arr[i][j]); 
    } 
    } 
    // Bill 
    // 20 
    // Lucy 
    // 23
    // David 
    // 25
    // Lily
    // 18

    **3-2-5break和continue**
    *break*
    用于跳出switch语句或者循环语句,注意的是:break语句不能直接作用于if语句,除非if语句是被嵌套在循环语句里面的。
    语法:
    for(表达式1;表达式2;表达式3){
    if(条件){
    //执行语句
    break;
    }
    }
    *continue语句*
    结束本次循环(不是终止整个循环),即跳过循环体中的continue语句后面的语句,开始下一次循环。
    break语句和continue语句的区别:
    continue语句的意思是结束本次循环,break语句是结束整个循环。
    示例:
    break语句:
    for(1,2,3){
    a;
    b;
    c;
    break;//执行a,b循环结束
    c;
    d;
    }
    continue语句:
    for(1,2,3){
    a;
    b;
    continue;//执行a,b后结束本次循环
    c;
    d;
    }

    **给数组去重复**
    
    let arr = [1, 2, 2, 2, 3, 4, 5, 5, 6, 6, 7, 8]; 
    let newArr = []; 
    outer: for (let i = 0; i < arr.length; i++) { 
    for (let j = 0; j < newArr.length; j++) { 
    if (arr[i] === newArr[j]) { 
    continue outer; //终止名字为outer的循环
    
    } 
    } 
    newArr.push(arr[i]);
    } 
    console.log(newArr);

    for循环示例:

    // 求100到200之间的3的所有倍数
    // 10个数为一行,打印一次
    let j=0;
    let arr ="";
    for(let a=100;a<=200;a++){
        if(a % 3 == 0){
            j++;
            arr =arr+a+" ";
        if(j%10==0){
            console.log(arr);
                arr ="";//消除已经打印出来了的,不重复打印
            }
        }
    }
    console.log(arr);                            
    // 100-999以内的水仙花数,即一个数字它的每一位数的立方加起来等于这个数,如:153=1*1*1+5*5*5+3*3*3
    let i;
    for(i=100;i<=999;i++){
    
        let bai = parseInt(i / 100);
        let shi = parseInt(i / 10)%10;
        let ge = i % 10; 
            if( i == bai*bai*bai+shi*shi*shi+ge*ge*ge){
                console.log(i);
        }
    }        
    // 斐波那契数列
    // 0,1,1,2,3,5,8,13,21....
    // 用户随机输入一个位数,判断这是数列中的哪个数
    
    let readline = require("readline-sync");
    console.log("请输入数字:")
    let bit;//位数
    let num1 =0;//第一位数
    let num2 =1;//第二位数
    let temp =0;//临时变量
    bit = parseInt(readline.question(""));
      for(let i=3;i<=bit;i++){
        temp = num2;
        num2 = num1 + num2;
        num1 = temp;
      }
    console.log("该位数上的数为:",num2);
    
  • 相关阅读:
    2009年放假时间安排
    省钱方便网上手机充话费
    为啥不能嵌入html?
    超出套餐流量的GPRS流量费竟然要贵100倍!怎么没有人管呢!这个价格怎么定的呢!
    2008汶川加油!2008中国加油!!
    thinkpad X200 破音特别厉害!郁闷啊!千万不要买水货!
    送走2008,迎接新的2009!
    "上海启明星电子商务有限公司"偷偷扣你的电话钱
    从公司到凯虹
    供应二级新疆细绒棉150吨
  • 原文地址:https://www.cnblogs.com/lyl-0667/p/11111636.html
Copyright © 2011-2022 走看看