表达式和语句
区别:表达可以求值,因此写在赋值语句的右侧。但语句不一定有值,比如alert() for和
break等语句就不能被用于赋值。
分支语句
三大流程控制语句:
- 顺序结构:从上往下执行
- 分支结构:需要根据条件选择执行代码
- 循环结构:某段代码被重复执行
分支语句可以让我们有选择性的之心发想要的代码
分支语句包括:
if分支语句,三元运算符,switch语句
if分支语句
分为三种使用:单分支,双分支,多分枝
单分支
if(条件){
满足条件执行的代码
}
小知识点:
- 括号内的田间为true时,进入大括号里执行代码
- 小括号内的结果若不是boolean值,会发生隐形转换为boolean值
- 除了0,所有数字都为真
- 除了null,所有的字符串都为真
- 如果大括号中只有一条语句,则大括号可以省略,但是不提倡
双分支
if(条件){
满足条件执行的代码
}else{
不满足条件执行的代码
}
案例:用户输入年份,分析用户输入的年份是闰年还是平年
逻辑思路:年份能被4整除并且不能被100整除,或者能被400整除的年份是闰年
其他的则为平年
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script>
let year = +prompt("请输入年份");
if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
document.write(`${year}年是闰年`);
} else {
document.write(`${year}年是平年`);
}
</script>
</body>
</html>
多分支
主要用于有多个结果的情况
if(条件1){
满足条件执行的代码1
}else if(条件2){
满足条件执行的代码2
}else if(条件3){
满足条件执行的代码3
}else{
满足条件执行的代码n
}
释义:
- 先判断条件1,若满足条件1就执行代码1,其他的不执行
- 若不满足条件1则向下判断条件2,若满足条件2则就执行代码2,若不满足,则继续执行,以此类推(可以写多个条件,这里只显示了2个)
- 若以上代码都不满足,则执行else里的代码n
案例根据输入不同的成绩,显示不同的评价
1.成绩90以上,优秀
2.成绩70-90,良好
3.成绩60-70,及格
4.成绩60分以下,不及格
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script>
let score = +prompt("请输入你的成绩");
if (score >= 90) {
document.write("优秀");
} else if (score >= 70) {
document.write("良好");
} else if (score >= 60) {
document.write("及格");
} else {
document.write("不及格");
}
</script>
</body>
</html>
三元运算符
比if上分支更简单的写法,主要是用于取值
符号:?与:配合使用
语法:
条件?满足条件执行的代码:不满足条件执行的代码
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script>
let score = 3>5?3:5;
/*
代码释义:
3是不是大于5
如果大于5,则输出3
如果小于5,则输出5
*/
</script>
</body>
</html>
案例:数字补零
用户输入一个数,如果小于10,则前面补0,比如09,03
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<script>
let num = prompt("请输入一个数字")
num=num < 10 ? 0 + num : num
document.write(num)
</script>
</body>
</html>
switch语句
switch(数据){
case 值1:
代码1
break
case 值2:
代码2
break 值1:
default:
代码n
break
}
释义:
- 找到很小括号里的数据全等的case值,并执行里面对应的代码
- 若没有全等 === 的则执行default里的代码
案例:计算器
需求:用户输入2个数字,然后输入+ - * /任何一个,可以计算出结果
分析:用户需要输入数字
用户输入不同的算术运算符,可以执行不同的运算(switch)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style></style>
</head>
<body>
<script>
//用户输入
let num1 = +prompt('请输入第一个数字');
let num2 = +prompt('请输入第二个数字');
let fuhao = prompt('请输入+ - * / 其中的一个');
//根据用户输入,判断输出
let total;
switch (fuhao) {
case "+":
total = num1 + num2;
document.write(`两个数字相加的操作:${num1}+${num2}=${total}`);
break;
case "-":
total = num1 - num2;
document.write(`两个数字相减的操作:${num1}-${num2}=${total}`);
break;
case "*":
total = num1 * num2;
document.write(`两个数字相乘的操作:${num1}*${num2}=${total}`);
break;
case "/":
total = num1 / num2;
document.write(`两个数字相除的操作:${num1}/${num2}=${total}`);
break;
default:
document.write('请输入+ / * - 其中一个')
}
</script>
</body>
</html>
注意
- switch case语句一般用于等值判断,不适合于区间判断
- switch case一般需要配合break关键字使用,没有break会造成case穿透