Javascript——多分支的if语句和If语句的嵌套

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mintsolace/article/details/90728950

多分支的if语句和跳楼现象
例1:用户输入成绩,如果成绩大于等于85,那么提示优秀;否则,如果成绩大于等于70,那么提示良好;否则,如果成绩介于60-69之间,那么提示及格;否则,不及格。

	<script type="text/javascript">
		var score=parseFloat(prompt("请输入成绩"));
		if (score>=85){
			alert("优秀");
		}else if(score>=70){
			alert("良好");
		}else if(score>=60){
			alert("及格");
		}else{
			alert("不及格");
		}
	</script>

语法:

if(条件表达式1){
	条件1为真的时候做的事情
}else if(条件表达式2){
	条件1不满足,条件2满足的时候做的事情
}else if(条件表达式3){
	条件12不满足,条件3满足的时候做的事情
}else{
	全都不满足的时候做的事情
}

跳楼现象揭示了多分支if语句的本质就是下一个楼层已经暗含以上楼层都不满足。

If语句的嵌套
例2:
一个加油站为了鼓励车主多加油,加的多有优惠。
92号汽油,每升6元;如果大于等于20升,那么每升5.9元;
97号汽油,每升7元;如果大于等于30升,那么每升6.95元;
编写JS程序,用户输入自己的汽油编号,再输入自己加多少升,弹出价格。

	<script type="text/javascript">
		//输入编号
		var number=parseInt(prompt("请输入想加的汽油编号,92还是97?"));
		var sheng=parseInt(prompt("请输入你想加多少升"));
		
		//判断
		if(number==92){
			//编号是92时做的事情
			if(sheng>=20){
				var price=sheng*5.9;
			}else{
				var price=sheng*6;
			}
		}else if(number==97){
			//编号是97时做的事情
			if(sheng>=30){
				var price=sheng*6.95;
			}else{
				var price=sheng*7;
			}
		}else{
			alert("没有这种编号的汽油");
		}
		alert("价格是"+price);
	</script>

例3:
某个公司要给员工发年终奖,工作时间越长,发的越多,规则如下:
工作满0年,发月薪的1倍年终奖,如果月薪大于8000则发1.2倍;
工作满1年,发月薪的1.5倍年终奖,如果月薪大于10000则发1.7倍;
工作满2年以上,发月薪的3倍年终奖,如果月薪大于12000则发3.2倍;
用JS编写程序,让用户输入工作几年,可以输入0,然后输入月薪,计算年终奖。

	<script type="text/javascript">
		//输入工作年限和月薪
		var year=parseInt(prompt("请输入工作年限,可以输0"));
		var salary=parseInt(prompt("请输入你的月薪"));
		//判断
		if(year>=2){
			//工作满2年以上
			if(salary>12000){
				var bonus=salary*3.2;
			}else{
				var bonus=salary*3;
			}
		}else if(year>=1){
			//工作满1年以上
			if(salary>10000){
				var bonus=salary*1.7;
			}else{
				var bonus=salary*1.5;
			}
		}else if(year>=0){
			//工作满0年
			if(salary>8000){
				var bonus=salary*1.2;
			}else{
				var bonus=salary*1;
			}
		}
		alert("你会有"+bonus+"元年终奖");
	</script>

If语句小知识点:else部分可以省略。

	<script type="text/javascript">
		var a=10;
		if(a>20){
			alert("这个数字大于20");
		}
	</script>

没有else部分,也就是说没有“否则”,如果条件表达式不满足了,那么就什么都不做。

如果要做的事情只有一句话,那么可以省略大括号(不建议初学者使用):

	<script type="text/javascript">
		var a=2;
		if(a>5)alert("这个数字大于5");
		alert("哈哈");
	</script>

这个程序不满足a>5,所以不能弹出"这个数字大于5",这是单行if语句,省略了大括号,等价于:

	<script type="text/javascript">
		var a=2;
		if(a>5){
			alert("这个数字大于5");
		}
		alert("哈哈");
	</script>

练习:
用户输入一个数字,判断这个数字能否被5、6整除,根据情况弹出下面4种警告框:这个数字能同时被5和6整除;这个数字能被5整除,但不能被6整除;这个数字能被6整除,但是不能被5整除;这个数字既不能被5整除,也不能被6整除。

	<script type="text/javascript">
		var num=parseInt(prompt("请输入一个数字"));
		//方法1:
		if(num % 5==0){
			if(num %6==0){
				alert("能同时被5,6整除");
			}else{
				alert("能被5整除但不能被6整除");
			}
		}else{
			if(num %6==0){
				alert("能被6整除,但不能被5整除");
			}else{
				alert("既不能被5整除,也不能被6整除");
			}
		}

		//方法2:
		if(num % 5==0 && num %6==0){
			alert("能被5、6同时整除");
		}else if(num % 5==0){
			alert("能被5整除,但不能被6整除");
		}else if (num %6==0) {
			alert("能被6整除,但不能被5整除");
		}else{
			alert("既不能被5整除也不能被6整除");
		}
	</script>

if-else语句:两个分支最终只执行一个分支
if-else if-else if…语句:多个分支,也是只会执行一个
switch-case语句:多分支语句,最终也执行一个(必须要有break)
三元表达式:和if-else语句一样
对范围的判断使用if-else if…
对具体的值的判断:使用switch-case
如果有多个分支,是针对范围的判断,一般选择if-else if语句
如果有多个分支,是针对具体值的判断,一般选择用switch-case语句

猜你喜欢

转载自blog.csdn.net/mintsolace/article/details/90728950
今日推荐