JavaScript条件分支语句
表达式 和 语句
两者的区别
表达式是一组代码的集合,JavaScript解释器会将其计算出一个结果
表达式:因为表达式可被求值 所以他可以写在赋值语句的右侧
语句: js 整句或命令,js 语句是以分号结束(可以省略)
比如: if语句 for 循环语句
而语句不一定有值 所以比如 alert( ) for 和 break 等语句就不能被用于赋值
分支语句
1、程序三大流程控制语句
2、分支语句
分支语句可以让我们有选择性的执行想要的代码
分支语句包含:
If分支语句
三元运算符
if 条件分支语句
if语句有三种使用:单分支、双分支、多分支
单分支使用语法:
括号内的条件为true时,进入大括号里执行代码
小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型
if ( 条件 ) {
满足条件要执行的代码
}
单分支使用示例:
<script>
// ( )里面书写条件 { }里面书写条件满足时执行的代码
// 满足if 的条件 就执行哪一个条件后面的 {内容}
// 前面满足则不考虑后面的内容
let money = 10000
// 变量为10000 条件为5000 大于5000 满足要求 为真 true
if (money >= 5000){
console.log('吃米其林三星');
}
</script>
双分支使用语法 :
else :不满足条件是执行的代码
if ( 条件 ) {
满足条件要执行的代码
} else {
不满足条件是执行的代码
}
示例:
<script>
// 满足if 的条件 就执行哪一个条件后面的 {内容}
// 前面满足则不考虑后面的内容
let money = 10000
// 变量为10000 条件为50000 小于50000 条件不满足 为假 false
if (money >= 50000){
console.log('吃米其林三星');
} //条件不满足时 为false 执行else的内容
else {
console.log('我可以选择吃快餐');
}
</script>
多分支使用语法 :
<script>
let money = 10000
// 变量为10000 条件为5000 大于5000 满足要求 为真 true
if (money >= 5000){
console.log('吃米其林三星');
} //条件不满足时 为false 执行else的内容
// 在if的基础上再加一个新条件 第一条件达成 则第二条件忽略 不执行
// 反之 则看第二条件是否满足 满足则执行 不满足则都不执行
else if(money >= 1500){
console.log('回家吃饭');
}
// 当所有条件都不满足的时候 则执行以下else的代码
else {
console.log('医生说牙不好 得吃软 要去护士小姐姐家吃');
}
</script>
模拟用户输入两个学科的分数
<script>
// 用户输入两个学科的分数 (总分各自100) 根据两颗的总分 来排等级
let num1 = +prompt('请输入你的语文分数')
let num2 = +prompt('请输入你的数学分数')
num3 = num1 + num2
console.log(num3);
// 模拟用户输入的值 大于100或者小于0
if ((num1 > 100 || num1 < 0)||(num2 > 100 || num2 <0) ){
alert('你的输入超过限制了。。。')
}else if (num3 > 190) {
alert('成绩优秀,保送北大')
alert('北大欢迎你')
alert('北大吧,也还行')
}else if (num3 > 180) {
alert('成绩良好 蓝翔技术学院欢迎你')
alert('恭喜你入选蓝翔技术学院生命科学研究分院')
alert('逗你玩呢')
alert('打王者吗')
alert('我不打')
alert('我戒了')
}else if (num3 > 170) {
alert('成绩及格 蓝翔技术学院欢迎你')
alert('恭喜你入选蓝翔量子力学和异种生物切片研究所')
}else {
alert('成绩重读')
alert('你是我带过最差的学生')
alert('试卷罚抄100遍')
alert('今晚来我房间')
alert('记得带上吃饭的家伙')
alert('晚上打边炉吃宵夜')
}
</script>
三元表达式
其实是比 if 双分支 更简单的写法,有时候也叫做三元表达式
符号:? 与 : 配合使用
语法:
一般用来取值
示例:
<script>
// 三元表达式
// 语法 : 条件 ? 代码1 : 代码2
// 例如:3大于5 为假 显示第二个代码条件 5
console.log(3 > 5 ? 3 : 5)
// 3小于5 为真 满足第一条件 页面弹出为真
3 < 5 ? alert('真的') : alert('假的')
</script>
<script>
// 三元表达式
let num1 = 10
let num2 = 9
num1 > num2 ? console.log(num1) : console.log(num2);
let num3;//就要等于 num1 和 num2 中 大的值
num3 =(num1 > num2 ? num1 :num2);
</script>
案例 :利用三元表达式 做出数字补0
需求:用户输入1个数,如果数字小于10,则前面进行补0, 比如 09 03 等 分析:
①:为后期页面显示时间做铺垫
②:利用三元运算符 补 0 计算
<script>
let num = +prompt('请输入你的第一个数字')
// 确认条件 获取需求 低于10的数字前面补0 转字符串即可 三元表达式
num >= 10 ? console.log(num) : console.log( '0' + num);
// 或者 以下几种方式也可
//1、 let strNum = num < 10 ? '0' + num : num;
//2、 if分支方式
let strNum;
if (num < 10){
strNum = '0' + num;
}else {
strNum = num
}
console.log(strNum);
</script>
案例 :判断2个数的最大值
需求:用户输入2个数,控制台输出最大的值 分析:
①:用户输入2个数
②:利用三元运算符输出最大值
<script>
let num1 = +prompt('请输入你的第一个数字')
let num2 = +prompt('请输入你的第二个数字')
num1 > num2 ? console.log(num1) : console.log(num2);
</script>
案例 :简单计算器
需求:用户输入2个数字,然后输入 + - * / 任何一个,可以计算结果
分析:
①:用户输入数字
②:用户输入不同算术运算符,可以去执行不同的运算 (判断)
<script>
let num1 = +prompt('请输入你的第一个数字')
let num2 = +prompt('请输入你的第二个数字')
// 加减乘除的 符号不属于数值类型 不用转数值
let num3 = prompt('请输入 "+" "-" "*" "/" 任意一种')
// = :赋值 == :等于 输入== 号 或输入 === 全等于 更严谨
if (num3 === '+') {
console.log(num1 + num2);
}else if (num3 === '-' ){
console.log(num1 - num2);
}else if (num3 === '*' ){
console.log(num1 * num2);
}else if (num3 === '/' ){
console.log(num1 / num2);
}else{
alert('想啥呢 搞错了')
}
</script>