前端学习笔记

41-50JS中switch,if,while,dowhile

2019-05-05  本文已影响2人  饥人谷_island
  1.switch格式:
    switch(表达式){
        case 表达式A:
            语句A;
            break;
        case 表达式B:
            语句B;
            break;
        ... ...
        default:
            前面所有case都不匹配执行的代码;
            break;
    }

    2.switch特点
    会从上至下的依次判断每一个case是否和()中表达式的结果相等, 如果相等就执行对应case后面的代码, 如果前面所有的case都不匹配, 那么就会执行default后面的代码
    并且所有的case和default只有一个会被执行, 并且只会被执行一次
    */
    let day = 7;
    switch (day) {
        case 1:
            console.log("星期1");
            break;
        case 2:
            console.log("星期2");
            break;
        case 3:
            console.log("星期3");
            break;
        default:
            console.log("Other");
            break;
    }

   // 1.case判断的是===, 而不是==
    /*
    let num = 123;
    switch (num) {
        case "123":
            console.log("字符串123");
            break;
        case 123:
            console.log("数值的123");
            break;
        default:
            console.log("Other");
            break;
    }
    */


    // 2.()中可以是常量也可以是变量还可以是表达式
    /*
    // let num = 123;
    // switch (num) { // 变量
    // switch (123) { // 常量
    switch (122 + 1) { // 表达式
        case 123:
            console.log("数值的123");
            break;
        default:
            console.log("Other");
            break;
    }
    */

    // 3.case后面可以是常量也可以是变量还可以是表达式
    /*
    let num = 123;
    switch (123) {
        // case 123: // 常量
        // case num: // 变量
        case 100 + 23: // 变量
            console.log("数值的123");
            break;
        default:
            console.log("Other");
            break;
    }
    */

    // 4.break的作用是立即结束整个switch语句
    // 在switch语句中一旦case或者default被匹配, 那么其它的case和default都会失效
    /*
    let num = 1;
    switch (num) {
        case 1:
            console.log("1");
            break;
        case 2:
            console.log("2");
            break;
        default:
            console.log("Other");
            break;
    }
    */

    // 5.default不一定要写在最后
    // switch中的default无论放到什么位置, 都会等到所有case都不匹配再执行
    /*
    let num = 7;
    switch (num) {
        // default:
        //     console.log("Other");
        //     break;
        case 1:
            console.log("1");
            break;
        default:
            console.log("Other");
            break;
        case 2:
            console.log("2");
            break;
    }
    */

    // 6.和if/else中的else一样, default也可以省略
    let num = 7;
    switch (num) {
        case 1:
            console.log("1");
            break;
        case 2:
            console.log("2");
            break;
    }

   要求用户输入一个分数,根据输入的分数输出对应的等级
    A 90~100
    B 80~89
    C 70~79
    D 60~69
    E 0~59

    100 / 10 = 10
    90 / 10 = 9
    99 / 10 = 9.9
    98 / 10 = 9.8
    */
    // 1.接收用户输入的分数
    let str = prompt("请输入一个0~100的数");
    // let score = +str;
    let num = +str;
    let score = parseInt(num / 10);
    console.log(score);
    /*
    // 2.判断用户输入分数的范围
    if(score >= 90 && score <= 100){
        // 3.根据范围输出对应的等级
        alert("A");
    }else if(score >= 80 && score <= 89){
        alert("B");
    }else if(score >= 70 && score <= 79){
        alert("C");
    }else if(score >= 60 && score <= 69){
        alert("D");
    }else if(score >= 0 && score <= 59){
        alert("E");
    }else{
        alert("回到火星去");
    }
    */
    switch (score) {
        case 10:
        case 9:
            alert("A");
            break;
        case 8:
            alert("B");
            break;
        case 7:
            alert("C");
            break;
        case 6:
            alert("D");
            break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
        case 0:
            alert("E");
            break;
        default:
            alert("回到火星去");
            break;
    }

    /*需求: 要求判断一个数是否是大于100的数
    *
    * 在企业开发中如果是对区间进行判断, 那么建议使用if
    * 在企业开发中如果是对几个固定的值的判断, 那么建议使用switch
    * 原则: 能用if就用if
    * */
    let num = 20;
    /*
    if(num > 100){
        alert("大于100的数");
    }else{
        alert("不大于100的数");
    }
    */
    switch (num) {
        case 101:
        case 102:
        case 103:
        case 104:
    }

   1.if的格式
    if(条件表达式){
        条件满足执行的语句;
    }
    if的特点: 只有条件表达式为真才会执行后面{}中的代码
              大括号中的代码只会被执行一次

    2.while的格式
    while(条件表达式){
        条件满足执行的语句;
    }
    while的特点: 只有条件表达式为真才会执行后面{}中的代码
                 大括号中的代码有可能会被执行多次

    3.while的执行流程
    3.1首先会判断条件表达式是否为真, 如果为真就执行后面{}中的代码
    3.2执行完后面{}中的代码, 会再次判断条件表达式是否还为真
    3.3如果条件表达式还为真, 那么会再次执行后面{}中的代码
    3.4重复3.1~3.3, 直到条件表达式不为真为止
    */
    /*
    console.log("发射子弹1");
    console.log("发射子弹2");
    console.log("发射子弹3");
    console.log("发射子弹4");
    console.log("发射子弹5");
    console.log("发射子弹6");
    console.log("发射子弹7");
    console.log("发射子弹8");
    console.log("发射子弹9");
    console.log("发射子弹10");
    */

    /*
    书写循环结构的规则
    1.不管三七二十一先写上循环结构的代码
    2.将需要重复执行的代码拷贝到{}中
    3.再()中指定循环的结束条件
    */
    let num = 1;
    while(num <= 10){
        console.log("发射子弹" + num);
        num++;
    }

    // 1.什么是死循环?
    // 条件表达式永远为真的循环结构我们称之为死循环
    // 2.什么是循环体?
    // 循环结构后面的{}我们称之为循环体
    /*
    while (true){
        console.log("123");
    }
    */

    // 3.和if一样对于非Boolean类型的值, 会先转换为Boolean类型再判断
    // while (null){
    // while (1){
    //     console.log("被执行了");
    // }

    // 4.和if一样while 后如果只有一条语句它可以省略大括号
    // 和if一样如果省略了后面的{}, 那么只有紧随其后的那条语句受到控制
    /*
    while (false)
        console.log("语句A");
    console.log("语句B");
    */

    // 5.和if一样, 不能在()后面写分号(;)
    /*
    while (false);

    {
        console.log("语句A");
        console.log("语句B");
    }
    */

    // 6.最简单死循环写法
    // while(1);

    1.if的格式
    if(条件表达式){
        条件满足执行的语句;
    }
    if的特点: 只有条件表达式为真才会执行后面{}中的代码
              大括号中的代码只会被执行一次

    2.while的格式
    while(条件表达式){
        条件满足执行的语句;
    }
    while的特点: 只有条件表达式为真才会执行后面{}中的代码
                 大括号中的代码有可能会被执行多次

    3.while的执行流程
    3.1首先会判断条件表达式是否为真, 如果为真就执行后面{}中的代码
    3.2执行完后面{}中的代码, 会再次判断条件表达式是否还为真
    3.3如果条件表达式还为真, 那么会再次执行后面{}中的代码
    3.4重复3.1~3.3, 直到条件表达式不为真为止
    */
    /*
    console.log("发射子弹1");
    console.log("发射子弹2");
    console.log("发射子弹3");
    console.log("发射子弹4");
    console.log("发射子弹5");
    console.log("发射子弹6");
    console.log("发射子弹7");
    console.log("发射子弹8");
    console.log("发射子弹9");
    console.log("发射子弹10");
    */

    /*
    书写循环结构的规则
    1.不管三七二十一先写上循环结构的代码
    2.将需要重复执行的代码拷贝到{}中
    3.再()中指定循环的结束条件
    */
    let num = 1;
    while(num <= 10){
        console.log("发射子弹" + num);
        num++;
    }

    // 1.什么是死循环?
    // 条件表达式永远为真的循环结构我们称之为死循环
    // 2.什么是循环体?
    // 循环结构后面的{}我们称之为循环体
    /*
    while (true){
        console.log("123");
    }
    */

    // 3.和if一样对于非Boolean类型的值, 会先转换为Boolean类型再判断
    // while (null){
    // while (1){
    //     console.log("被执行了");
    // }

    // 4.和if一样while 后如果只有一条语句它可以省略大括号
    // 和if一样如果省略了后面的{}, 那么只有紧随其后的那条语句受到控制
    /*
    while (false)
        console.log("语句A");
    console.log("语句B");
    */

    // 5.和if一样, 不能在()后面写分号(;)
    /*
    while (false);

    {
        console.log("语句A");
        console.log("语句B");
    }
    */

    // 6.最简单死循环写法
    // while(1);

    /*打印1~100之间 7的倍数,并统计个数*/
    // console.log(1);
    // console.log(2);
    // console.log(3);
    // console.log(4);

    /*
    书写循环结构代码的规则
    1.不管三七二一先写上循环结构的代码
    2.将需要重复执行的代码拷贝到{}中
    3.在()中指定循环结束的条件
    */
    let num = 1;
    let count = 0;
    while(num <= 21){
        // console.log(num);
        if(num % 7 === 0){
            console.log(num);
            count++;
        }
        num++;
    }
    console.log(count);

     /*提示用户输入一个正整数n, 计算1 + 2 + 3 + ...n的和
    规律:
    1.每次都是使用上一次的和加上当前的一个数
    2.每次加上的这个数都是一个递增的数据
    1 + 2 + 3 + 4;
0 + 1
    1 + 2
        3 + 3
            6 + 4
    */
    // 1.定义一个变量保存上一次相加的和
    let sum = 0;
    // 2.定义一个变量保存每次递增的那个数
    let num = 1;
    // 3.利用上一次的和加上递增的数
    /*
    sum = sum + num; // sum = 0 + 1;
    num++; // 2

    sum = sum + num; // sum = 1 + 2
    num++; // 3

    sum = sum + num; // sum = 3 + 3
    num++; // 4

    sum = sum + num; // sum = 6 + 4
    */
    while (num <= 5){
        sum = sum + num; // sum = 1 + 2
        num++; // 3
    }
    console.log(sum);

    1.while循环的格式
    while(条件表达式){
        需要重复执行的代码;
    }
    while循环的特点: 只有条件表达式为真, 才会执行循环体

    2.dowhile循环的格式
    do{
        需要重复执行的代码;
    }while(条件表达式);
    dowhile循环的特点: 无论条件表达式是否为真, 循环体都会被执行一次
    */

    // while (false){
    //     console.log("www.it666.com");
    // }

    do{
        console.log("www.it666.com");
    }while (false);

    需求: 要求用户输入密码, 判断输入密码是否正确(假设正确密码是123456)
          如果正确, 输出"欢迎回来"
          如果不正确, 要求用户重新输入
    */
    /*
    let pwd = prompt("请输入密码");
    if(pwd !== "123456"){
        pwd = prompt("请输入密码");
    }
    if(pwd !== "123456"){
        pwd = prompt("请输入密码");
    }
    if(pwd !== "123456"){
        pwd = prompt("请输入密码");
    }
    if(pwd !== "123456"){
        pwd = prompt("请输入密码");
    }
    alert("欢迎回来");
    */
    /*
    let pwd = prompt("请输入密码");
    while (pwd !== "123456") {
        pwd = prompt("请输入密码");
    }
    alert("欢迎回来");
    */
    let pwd = -1;
    do{
        pwd = prompt("请输入密码");
    }while (pwd !== "123456");
    alert("欢迎回来");
    /*
    1.在企业开发中大部分情况下while循环和dowhile循环是可以互换的
    2.在企业开发中如果循环体中的代码无论如何都需要先执行一次, 那么建议使用dowhile循环
    3.在企业开发中其它的情况都建议使用while循环
    */
上一篇 下一篇

猜你喜欢

热点阅读