一、单分支
1.语法:if(条件表达式){
当条件表达式的结果为true的时候要执行的代码段
}
2.当大括号中只有一行代码时,就可以省略大括号
3.代码段可以写多行代码,包含分支结构,分支结构嵌套,隐形的逻辑运算
var age = prompt('请输入年龄: ')
if(age >= 18){
console.log('可以去网吧玩');
}
二、双分支
1.语法:if(条件表达式){
如果条件表达式的结果为true时要执行的代码段
}else{
如果条件表达式的结果为false时要执行的代码段
}
2.双分支就是条件二选一
var gender = prompt('请输入你的性别: ')
if(gender == 'boy'){
console.log('可以去男厕');
}
else{
console.log('可以去女厕');
}
三、多分支
1.语法:if(条件表达式1){
如果条件表达式的结果为true时要执行的代码段
}else if(条件表达式2){
如果条件表达式的结果为true时要执行的代码段
}else if(条件表达式3){
如果条件表达式的结果为true时要执行的代码段
}else if(条件表达式4){
如果条件表达式的结果为true时要执行的代码段
}
...
else{
}
2.运行顺序:
(1)从上至下执行,如果条件达成,结果为true,剩下的都不执行
(2)如果条件执行到条件表达式3才满足结果为true,那么前两个条件也要先走(执行)一
遍流程,其余就不执行了
3.多分支就是条件多选一
var age = prompt('请输入你的年龄: ')
if(age <= 18){
console.log('奖励一只小狗');
}
else if(age <= 40){
console.log('奖励一个背包');
}
else if(age <= 60){
console.log('奖励一张邮票');
}
else{
console.log('奖励一副老花镜');
}
四、分支结构的简写
1.语法:if() console.log; else console.log();
2.要求:当分支语句的大括号中只有一行代码时,就可以将这个大括号省略掉
var age = prompt('请输入你的年龄 :');
if(age >= 18){
console.log('可以去网吧');
}else{
console.log('不可以去网吧');
}
//可以简写为:
var age = prompt('请输入你的年龄 :');
if(age >= 18) console.log('可以去网吧'); else console.log('不可以去网吧');
五、分支结构的嵌套
1.语法:if(条件表达式1){
if(条件表达式2){}
else{}
}else{
if(条件表达式3){}
else{}
}
2. 举例:输出a,b,c最大值
var a = 1;
var b = 2;
var c = 3;
if(a > b){
if(a > c){
console.log(a);
}else{
console.log(c);
}
console.log()
}else{
if(b > c){
console.log(b);
}else{
console.log(c);
}
}
六、if条件中的细节点
1.语法:if(语法){
}else{
}
2.因为if条件表达式的结果为true或false,所以可以直接将布尔值当做条件放入小括号内,如果将非布尔值的表达式放入条件小括号内,则会隐形转换类型
if(false){
console.log('真的');
}else{
console.log('假的');
}
七、switch语句
1.语法:switch(){
case 数据1:
console.log();
break
case 数据2:
console.log();
break
case 数据3:
console.log();
break
default; ----------如果条件值与数据都不相符,则执行这条输出
}
2.switch语句也是分支语句
3.switch只能判断多分支,只能判断全等
4.switch执行效率比 if 多分支要高 --------switch只执行对应 条件值的一次,if 需要前面条件都判断
var n = prompt('请输入一个数字: ');
if (isNaN(n)) {
console.log('输入的不是数字')
} else {
if (n >= 1 && n <= 7) {
switch (n) {
case '1':
console.log('今天星期一');
break;
case '2':
console.log('今天星期二');
break;
case '3':
console.log('今天星期三');
break;
case '4':
console.log('今天星期四');
break;
case '5':
console.log('今天星期五');
break;
default:
console.log('今天是休息日');
}
}else{
console.log('输入的数字不在1~7范围内');
}
}
八、switch语句的使用注意
1.switch、case、break、default
2.default可以省略
3.switch只能判断全等,不能判断区间范围
4.关键字中break的作用是,将整个switch语句结束,可以将它省略
5.当break省略后,不在判断后面的条件,直接输出其后面最近的条件的执行结果
6.switch语句只判断一次,比多分支 if 效率高
7.使用场景:
(1)如果判断的条件比较复杂,使用 if
(2)条件是确定的值,分两种情况:
1-1.如果判断条件的分支小于等于3个,就使用 if ,这时候的效率和switch语句一样
1-2.如果大于3个,就使用switch
1-3.switch判断使用的是 全等于(===)
九、累加
1.switch的穿透写法:如果case后面不写break,那当前case执行后,会继续执行后面的case中的
代码
//求数字的和
var sum = 0;
switch (n) {
case 5:
sum += 5
case 4:
sum += 4
case 3:
sum += 3
case 2:
sum += 2
case 1:
sum += 1
}
console.log(sum);
十、三元运算符
1.简写方法:条件 ? 条件为true时执行的代码 : 条件为false时执行的代码;
2.特点:可以将整个三元运算表达式,可以当做是一个具体的数据,进行赋值或输出
var age = 20;
if(age >= 18){
console.log('玩');
}else{
console.log('看');
}
//简写为:
var age = 20;
age >= 18 ? console.log('玩') : console.log('看');
//整个三元运算表达式 可以当做是一个具体的数据 进行赋值或输出
//1-1 赋值
var age = 16;
var res = age >= 18 ? console.log('玩') : console.log('看');
//1-2 输出
var age = 16;
var res = age >= 18 ? '玩' : '看';
console.log(res);
console.log(age >= 18 ? '玩' : '看');
//用最简短的代码求3个变量中的最大值
var a = 4;
var b = 5;
var c = 3;
var max = a>b ? a>c ? a : c : b>c ? b : c;
console.log(max);