当前位置: 首页 > Web前端 > JavaScript

逻辑分支

时间:2023-03-27 17:03:55 JavaScript

简介:在我们的日常生活中,需要判断的事情有很多。比如你去服装城买衣服,看中了一件衣服,老板要600元,你马上会想,这个价格是不是太贵了,判断结果只有两种可能,一个贵,一个不贵。贵的就不买,不贵的就买。再比如,你去网吧,网管也要判断你是否年满18岁。结果只有两个,yes和no。大于60分为合格,否则为不合格,大于90分为优等。.在我们的代码中,会有很多判断。比如我们做的练习,小红符合条件就可以结婚,不符合条件就不能结婚。我们昨天只能看到一个布尔值,并没有进行下一步。今天的学习结束后,我们就可以进行下一步了。我们今天学习的主要内容是判断,也叫逻辑分支。判断也有很多种,比如:考试成绩大于60,pass考试成绩大于60,pass,否则,fail考试成绩大于60小于80,pass,大于80小于90,good,if大于90,Excellent根据以上情况,我们将判断分为三种。根据结果??,只有一个东西叫单分支,两个东西叫双分支,多个东西叫多分支。单分支语法:if(条件表达式){当条件表达式的结果为真时要执行的代码}示例:varage;if(age>18){alert("adult");}双分支语法:if(条件表达式){条件表达式结果为真时执行的代码}else{条件表达式结果为假时执行的代码}例子:if(age>18){alert("成人");}else{alert("Minor");}案例:输入年份判断是否为闰年多分支语法:if(条件表达式1){当条件表达式1的结果为真时,要执行的代码}elseif(条件表达式2){当条件表达式2的结果为真时,要执行的代码}elseif(条件表达式3){当条件表达式3的结果为真时,要执行的代码待执行}。..}else{}#多分支可以有几个elseif,else可以根据需要有或没有例子:varscore=Number(prompt("请输入考试成绩:"));if(isNaN(score)){alert("输入错误");}else{if(score>=0&&score<60){alert("失败");}elseif(score>=60&&score<70){alert("及格");}elseif(score>=70&&score<80){alert("C");}elseif(score>=80&&score<90){alert("B");}elseif(score>=90&&score<=100){alert("A");}else{alert("输入错误");}}分支结构的简写方式如果只有大括号可以在单行代码中省略。示例://单分支varage的简写;if(age>18)alert("adult");//双分支的简写if(age>18)alert("adult");elsealert("Minor");//多个分支的简写varscore=Number(prompt("请输入考试成绩:"));varscore=Number(prompt("请输入考试成绩:"));if(isNaN(score))alert("输入错误");else{如果(分数>=0&&分数<60)警报(“失败”);elseif(score>=60&&score<70)alert("Passed");elseif(score>=70&&score<80)alert("C");elseif(score>=80&&score<90)alert("B");否则如果(分数>=90&&分数<=100)警报(“A”);elsealert("incorrectinput");}分支结构嵌套示例:定义三个变量,求三个值中的最大值。vara,b,c;if(a>b){if(a>c){alert("变量a最大");}else{alert("变量c最大");}}else{if(b>c){alert("变量b最大");}else{alert("变量c最大");}}switch多路判断语法:switch(variable){case值1:执行的代码块break;casevalue2:执行的代码块break;...default:执行代码块}使用说明:break表示当前分支执行完后结束switch的操作,不再运行后续代码。varday=Number(prompt("请输入0~7之间的数字:"));if(isNaN(day)||day<=0||day>7){alert("输入错误");}else{switch(day){case1:alert("今天是星期一");休息;case2:alert("今天是星期二");休息;case3:alert("今天是星期三");休息;case4:alert("今天是星期四");休息;case5:alert("今天是星期五");休息;默认值:alert("输入错误");}}注意:使用多路判断当可以使用switch判断时,尽量使用switch,因为switch的判断是一个确定的值,条件比较简单,所以效率高。使用场景:如果判断条件比较复杂,使用if条件为确定值,分两种情况:如果判断分支小于等于3,则使用if,此时的效率和switch一样,大于3的就用switch。开关判断使用等于(===)开关穿透式写法。如果case后面不写break,当前case执行完后,会继续执行后面case中的代码Output1~5:varday;switch(day){case1:alert("今天是星期一");休息;case2:alert("今天是星期二");休息;case3:alert("今天是星期三");case4:alert("今天是星期四");休息;case5:alert("今天是星期五");休息;default:alert("Inputerror");}当day的值为2时,不执行下面的代码中,当day的值为3时,执行3的代码后,4的代码也会执行被执行,因为3的代码后面没有break。这时候可以利用switch的这个特性来简化一些代码:输入一个月份,判断并输出这个月有多少天?varmonth=Number("请输入月份:");if(isNaN(month)||month<=0||month>12){alert("输入错误");}else{switch(day){case1:case3:case5:case7:case8:case10:case12:alert("这个月有31天");休息;case4:case6:case9:case11:alert("这个月还有30天");休息;case2:alert("这个月有29或28天");休息;默认值:alert("输入错误");}}if条件中的详细说明if条件的结果是布尔值,所以可以把布尔值作为条件放在if的括号里例子:if(true){alert("true");}else{alert("false");}如果将其他非布尔值表达式或数据放在条件括号中,则会发生不可见的类型转换。例子:if(2){//这里的2被转换成booleanconsole.log(2);}三元运算ifdoublebranch有一个简写方式:condition?条件为真时运行的代码段:条件不为真时运行的代码段;示例:a>b?console.log(a):console.log(b);这种表示双分支的方式称为三元运算,也称为三元表达式。三元运算有一个特点:整个表达式可以看作一个值,可以赋值给一个变量,也可以输出例:varmax=a>b?a:b;//分配a和b中较大的数给变量maxconsole.log(a>b?a:b);//输出a和b中较大的数