JavaScript的逻辑分支

目录

逻辑分支

一、if条件分支结构

1.if else语法

2.if else练习

二、switch条件分支结构

1.switch语法

2.switch练习

三、三目运算符(三元条件运算符)


逻辑分支

一、if条件分支结构

1.if else语法

语法1:if(){}

if条件满足即执行,反之则不执行

var year = 18;

if(year>=18){

console.log("成年了");

}

 

语法2:if(){}else{}

不管if条件满不满足,都会执行else里面的代码

var year = 18;

if(year>=18){

console.log("成年了");

}else{

console.log("未成年");

}

语法3:if(){}else if(){}else if(){}...

可以执行多个else if判断,但是如果if条件都不满足,则都不执行

var year = 18;
if(year>18){
console.log("大于18岁");
}else if(year=18){
console.log("刚好满18岁");
}else if(year<18){
console.log("小于18岁");
}

语法4:if(){}else if(){} ... else{}

可以执行多给else if判断,不管满不满住if条件,一定会执行最终的else代码

var year = 18;
if(year>18){
console.log("大于18岁");
}else if(year=18){
console.log("刚好满18岁");
}else if(year<18){
console.log("小于18岁");
}else{
console.log("不能等于0");
}

2.if else练习

猜拳游戏:

需求: 玩家和计算机玩猜拳游戏

                + 1=石头 2=剪刀  3=布

                + 玩家通过输入1-3,确定出的是什么

                + 计算机通过随机一个1-3之间的整数,确定出的是什么

 技术点:

                + 获取用户输入的内容

                + 随机产生一个整数

技术点1: 获取用户输入的内容

var player = prompt('请输入一个1-3之间的整数:1=石头,2=剪刀,3=布');
console.log(player)
prompt可以弹出一个输入框
然后把用户输入的内容以字符串形式返回
我可以用一个变量接收这个数据

技术点2: 随机产生一个整数

js方法:Math.random()
可以返回一个0-1之间的随机小数
且随机小数可能是0,但是一定不会是1
var computer = parseInt(Math.random()*3)+1;
console.log(computer);

完成需求

1.玩家出拳:玩家通过输入1-3,确定出什么

var player = prompt('请输入一个1-3之间的整数:1=石头,2=剪刀,3=布');

2.电脑出拳:随机产生一个1-3之间的整数

var computer = parseInt(Math.random()*3)+1;

3.判断结果

if(palyer==1){
//玩家出石头
          if(computer==1){
              console.log("电脑出石头");
              console.log("玩家出石头");
              console.log("平局");
          }else if(computer==2){
            console.log("电脑出剪刀");
              console.log("玩家出石头");
            console.log("玩家胜出");
          }else if(computer==3){
            console.log("电脑出布");
            console.log("玩家出石头");
            console.log("电脑胜出");
          }
      }else if(palyer==2){//玩家出剪刀
          if(computer==1){
              console.log("电脑出石头");
              console.log("玩家出剪刀");
              console.log("电脑胜出");
          }else if(computer==2){
            console.log("电脑出剪刀");
              console.log("玩家出剪刀");
            console.log("平局");
          }else if(computer==3){
            console.log("电脑出布");
            console.log("玩家出剪刀");
            console.log("玩家胜出");
          }
        }else if(palyer==3){//玩家出布
          if(computer==1){
              console.log("电脑出石头");
              console.log("玩家出布");
              console.log("玩家胜出");
          }else if(computer==2){
            console.log("电脑出剪刀");
              console.log("玩家出布");
            console.log("电脑胜出");
          }else if(computer==3){
            console.log("电脑出布");
            console.log("玩家出布");
            console.log("平局");
          }
      }

二、switch条件分支结构

1.switch语法

               /*语法:
                    switch(变量){
                        case 值1:
                            如果变量的值===值1的时候,执行这里的代码;
                            break;
                        case 值2:
                            如果变量的值===值2的时候,执行这里的代码;
                            break;
                        case 值3:
                            如果变量的值===值3的时候,执行这里的代码;
                            break;
                        ....
                        default:
                            如果所有的值都不相等的时候,执行这里的代码;
                            break;
                    }*/

switch的穿透:

switch进行条件判断,满足条件则执行case里面的条件。如果有break就不执行下面的代码,如果不写break,就会继续执行下面的代码,同时不会进行条件判断,这个就叫做switch的穿透

2.switch练习

根据一个六位数 数字日期,判断这个日期是这一年的第几天。 (使用switch 穿透编写)

需求:

+ 需要单独的把年、月、日分别存储起来

+ 需要创建一个变量来接收全年的天数

+ 需要判断每个月的天数,以及判断闰年二月份的天数

完成需求

var date = Number(prompt("请输入一个8位数的日期"));
var year = parseInt(date / 10000);//取整数 前四位为年份
var yue = parseInt(date / 100) % 100;//先取整除掉天数,然后取余后两位为月份
var day = parseInt(data % 100);//取余后两位为天数
var days = 0;//用来接收全年的天数
var rn = 0;//闰年

switch (yue) {
            case 12:
                days += 30;
            case 11:
                days += 31;
            case 10:
                days += 31;
            case 9:
                days += 30;
            case 8:
                days += 31;
            case 7:
                days += 30;
            case 6:
                days += 31;
            case 5:
                days += 30;
            case 4:
                days += 31;
            case 3:
                if (year% 4 == 0 && year% 100 != 0 || year% 400 == 0) {
                    rn = 28;
                } else {
                    rn = 29;
                }
                days += rn;
            case 2:
                days += day + 31;
                console.log(days);
                break;
            default:
                days = day ;
                console.log(days);
        }
        alert(yue+"月"+day+"日是"+year+"年的第"+days+"天");

三、三目运算符(三元条件运算符)

三目运算符(三元条件运算符): 表达式 ? 值1 : 值2
如果表达式的值为true,则结果取值1。否则为值2

== 这个运算符是由三个操作数和两个符号组成的

 == 语法:条件 ? 条件为true执行此次 : 条件为false执行此处

== 类似if else

// 如果年龄大于等18岁,就是成年人,否则就是未成年人
var age = 23;
var info = age>=18?'成年人':'未成年人'
console.log(info);

 

上一篇:python datetime 日期相减方法


下一篇:【每日一题】1482. 制作 m 束花所需的最少天数