目录
逻辑分支
一、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);