()小括号的作用
先乘除后加减
1.
在算术运算符中
()
可以提供计算的优先级,有括号的先计算
console.log((3+5)*2)
2. ()
可以把
js
放在
()
里面,表示一个整体
var a = -(-1)
3.
可以提高逻辑运算符的优先级
console.log((false && true) || (false && true))
if 条件语句
条件语句
: js
提供了
if
结构和
switch
结构,完成条件判断,只有满足预设的条件,才能执行相应的语句。
1. if
结构的小括号里面的
boolean
是
true
则会执行紧挨着
if
的语句
(
只有一条
)
if (boolean)
语句
if(false)
console.log("is true1") // 如果if条件为true,则只会执行这一行代码。
// 后面的代码没有挨着if语句,不受条件限制。
console.log("is true2")
var x = 10
console.log(x)
2.
如果挨着
if
结构的语句是代码块,如果
boolean
为
true
,则整个代码块都会被执行
,
一般常用该方法。
if(boolean){
....
}
if(false){
console.log("is true1") // 如果if条件为true,整个{}代码块里面的语句都会执行
console.log("is true2")
}
3. if() if
括号里面的条件如果不是
bool
类型,则会自动转
bool
类型。一般
if
结构的条件以逻辑运算符居多
if(1 === 3 || 4 === 4){
console.log("goood")
}
4. else 语句
if(boolean){ // boolean为true执行挨着if语句的代码块
...
} else { // boolean 为false则执行挨着else的语句。else必须挨着if语句
...
}
var age = 12
// 大于 > ,小于 < , 大于等于 >= , 小于等于 <=
if(age <= 10){
console.log("小于等于10岁")
} else {
console.log("大于10岁")
}
5.
多条件判断语句
else if(boolean){}, else if
必须挨着
if
语句或者
else if
语句
,
多个条件中只会执行一个
,
如果
bolean 为true
,则会停止后面的条件判断。
if(age < 10){
console.log("小于10")
} else if(a < 20){
console.log("小于20")
} else if(a < 30) {
console.log("小于30")
} else { // 如果前面的条件都不成立,则执行else语句
console.log("大于等于30")
}
// 需求: 95-100 完美, 80-95 优秀, 70-80 良好, 60-70 及格 , 60以下不及格。根据一个分数,判断是
属于哪个等级。
var score = 75;
if(score <=100 && score > 95){
console.log("完美")
} else if(score <=95 && score > 80){
console.log("优秀")
} else if(score <=80 && score > 70){
console.log("良好")
} else if(score <=70 && score >= 60){
console.log("及格")
} else {
console.log("不及格")
}
// 编程语言的最大特点是根据不同的思想有不同的写法,不同的代码写法运行的效率也不一样。
if(score < 60){
console.log("不及格")
} else if(score <= 70) {
console.log("及格")
} else if(score <= 80){
console.log("良好")
} else if(score <= 95) {
console.log("优秀")
} else {
console.log("完美")
}
switch 条件结构语句
switch
主要是简化多条件判断语句,用
x
去和
case
后面的值做全等于
(===)
比较
,
如果为
true
则会执行
case
里面的语句,break
是不会执行后面的语句,直接跳出
switch
语句
switch(x){
case value1:
语句1;
break;
case value2:
语句2;
break
default:
语句3
}
var name = "张"
switch(name){
case "张": //等价于 name === "张"
console.log("number1")
break // 执行语句遇到break终止后面代码执行,跳出switch语句,执行switch后面语句
// 如果不加break,如果case 条件为true以后,后面的case语句都不会在去比较,会直接执行里面的
语句。switch 语句必须加break
case "李":
console.log("number2")
break
default: // 执行到default运行里面的语句
console.log("number1000")
}
console.log("over")
// 如果排名是100名或者90名,表示中一等奖
// 如果排名是80或者85,表示二等奖
// 其他的没有奖
var sort = 80
switch(sort){
case 100: // 相同条件(或逻辑),可以用该写法。
case 90:
console.log("一等奖")
break
case 80:
case 85:
console.log("二等奖")
break
default:
console.log("没有奖")
}
题1.游戏中角色的控制一般用a表示向左移动,d表示向右移动,s表示向下移动,w表示向上移动,j表示发射子弹,k表示扔手雷请写出能实现角色以下动作的逻辑代码:
向左移动、向右移动、向下移动、向上移动、左下移动、左上移动、右下移动、右上移动、可以移动发射子弹或扔手雷
// 由于键盘上的按键是可以同时按下,可以考虑用七个变量分别对应七个按键,可以用boolean的true表示按键按下,false表示按键没有按下
var a = true
var d = false
var s = false
var w = false
var j = true
var k = true
// 左右方向只能生效一个
if(a){
console.log("left")
} else if(d){
console.log("right")
}
if(w){
console.log("top")
} else if(s){
console.log("down")
}
if(j){
console.log("bullt")
}
if(k){
console.log("bo")
}
题2.租车系统中: car 表示租车数量, price 表示价格, day 表示租车天数。请写出以下业务的逻辑代码:
1. 如果租1辆车,价格是100元/每天,租1天不打折,租2-5(包含)天打9折,租5-10(包含)天打8折,租10天以上打7折
2. 如果租2-5(包含5)辆车,价格是90元/每天,租1天不打折,租2-5(包含)天打8.8折,租5-10(包含)天打7.8折,租10天以上打6.8折
2. 如果租5辆车以上,价格是80元/每天,租1天不打折,租2-5(包含)天打8.6折,租5-10(包含)天打7.6折,租10天以上打6.6折
// 分析业务中数据并找出数据中的逻辑规律,尽量把有规律的数据做成变量控制。
var car = 1
var price = 100
var day = 1
var discount = 1
// 根据车辆数量计算对应的租车的price价格和折扣关系
if (car === 1) {
discouunt = 0.9
} else if (car <= 5) {
price = 90
discount = 0.88
} else {
discount = 0.86
price = 90
}
//计算不同天数的折扣后的价格
if (day === 1) {
price = price
} else if (day < + 5) {
price = price * discount
} else if (day <= 10) {
price = price * (discount - 0.1)
} else {
price = price * (discount - 0.2)
}
console.log(car * price * day)