JavaScript-4

1、分支结构
2、循环结构
=============================
1、分支结构
1、else...if语句(多重if结构)
1、问题
根据考试成绩,给出 A-E 等级
成绩为100分,则输出A
成绩在90分以上 则输出B
成绩在80分以上 则输出C
成绩在60分以上 则输出D

否则 输出E

                 

<!doctype html>
<html>
	<head>
		<title>标题</title>
		<meta charset="utf-8">
	</head>
	<body>
		<script>
			function getScore(){
				/*1、输入一个考试成绩*/
				var score = prompt("请输入一个考试成绩:");
				/*2、根据成绩判断所在的区间范围并提示A-E的等级*/
				/*if(score == 100){
					console.log("A");
				}else{
					if(score>=90){
						console.log("B");
					}else{
						if(score >= 80){
							console.log("C");
						}else{
							if(score >= 60){
								console.log("D");
							}else{
								console.log("E");
							}
						}
					}
				}*/

				if(score==100){
					console.log("A");
				}else if(score >= 90){
					console.log("B");
				}else if(score >= 80){
					console.log("C");
				}else if(score >= 60){
					console.log("D");
				}else{
					console.log("E");
				}
			}
		</script>
		<button οnclick="getScore();">测试考试成绩</button>
	</body>
</html>

2、语法
if(条件1){
语句块1;
}else if(条件2){
语句块2;
}else if(条件3){
语句块3;
}... ...else{
语句块n;
以上条件都不满足时,才运行else
}
注意:else是可有可无的。
3、练习
要求用户通过 弹框 输入年,输入月,输入日,判断 该日 是这一年的第多少天?
输入年:2016
输入月:10
输入日:27
2016年10月27日是2016年的第301天
1月:31
2月:闰年 29天,(如果平年则 28天)
3月:31天
4月:30
5月:31
6月:30
7月:31
8月:31

9月:30

                   

<!doctype html>
<html>
	<head>
		<title>标题</title>
		<meta charset="utf-8">
	</head>
	<body>
		<script>
			function getTotalDays(){
				var year=Number(prompt("输入年:"));
				var month=Number(prompt("输入月:"));
				var day=Number(prompt("输入日:"));
				var totalDays=0;//记录总天数

				if(month == 1){
					totalDays = day;
				}else if(month == 2){
					totalDays = 31 + day;
				}else if(month == 3){
					totalDays = 31+28+day;
				}else if(month == 4){
					totalDays = 31+28+31+day;
				}else if(month == 5){
					totalDays = 31+28+31+30+day;
				}else if(month == 6){
					totalDays = 31+28+31+30+31+day;
				}else if(month == 7){
					totalDays = 31+28+31+30+31+30+day;
				}else if(month == 8){
					totalDays = 31+28+31+30+31+30+31+day;
				}else if(month == 9){
					totalDays = 31+28+31+30+31+30+31+31+day;
				}else if(month == 10){
					totalDays = 31+28+31+30+31+30+31+31+30+day;
				}else if(month == 11){
					totalDays = 31+28+31+30+31+30+31+31+30+31+day;
				}else if(month == 12){
					totalDays = 31+28+31+30+31+30+31+31+30+31+30+day;
				}


				//当不是1月和2月的时候,再执行以下操作
				//判断是否为闰年,如果为闰年的话,则 + 1 天
				if(month!=1 && month!=2){
					if(year%4==0&&year%100!=0||year%400==0){
						totalDays+=1;
					}
				}
				console.log(year+"年"+month+"月"+day+"日是"+year+"年的第"+totalDays+"天");
			}
		</script>
		<button οnclick="getTotalDays();">获取总天数</button>
	</body>
</html>

2、switch-case 结构
1、作用
为了简化 等值判断 的条件判断结构
2、语法
switch(变量/表达式){
case 值1:
语句块1;
break; //该语句块的结束
case 值2:
语句块2;
break; //表示结束,可以不写
... ...
default:
语句块n;
break;
}
1、执行流程
1、解析 表达式或变量中的值
2、用 解析出的数值 与 case 后的数值进行等值比较
如果 比较成功,则执行该case后的语句块
3、执行完成后,如果碰到 break则结束整个switch结构,否则继续向下执行(非判断)
3、switch-直落形式
两块或多块case之间,没有任何操作代码,表示 多块case要执行相同的操作
switch(变量/表达式){
case 值1:
case 值2:
case 值3:
语句块;
break;

}

<!doctype html>
<html>
	<head>
		<title>标题</title>
		<meta charset="utf-8">
	</head>
	<body>
		<script>
			/*1、取款,转账,查询,退出,维护函数*/
			function getMoney(){
				alert("取款进行中,请稍后...");
			}
			function transfer(){
				alert("转账进行中,请稍后...");
			}
			function query(){
				alert("查询进行中,请稍后...");
			}
			function exit(){
				alert("欢迎使用!拜拜!");
			}
			function weiHu(){
				alert("系统维护中...");
			}

			function userError(){
				alert("您的操作有误...");
			}

			/*2、菜单选择:根据用户传递进来的数据调不同的函数*/
			function menu(choice){
				switch(choice){
					case 1:
						query();
						break;
					case 2:
						getMoney();
						break;
					case 3:
						transfer();
						break;
					case 0:
						exit();
						break;
					default:
						userError();
						break;
				}
			}

			/*3、欢迎函数:显示菜单,并让用户输入数据*/
			function welcome(){
				var menu1 = "====欢迎使用电话银行系统====\n查询请按1\n取款请按2\n转账请按3\n退出请按0";
				var choice = Number(prompt(menu1));
				//调用 menu 函数
				menu(choice);
			}

			function calDate(){
				var year = Number(prompt("Year:"));
				var month = Number(prompt("Month:"));
				var day = Number(prompt("Day:"));
				totalDays = 0;
				switch(month-1){
					case 11:
						totalDays += 30;
					case 10:
						totalDays += 31;
					case 9:
						totalDays +=30;
					case 8:
						totalDays += 31;
					case 7:
						totalDays += 31;
					case 6:
						totalDays += 30;
					case 5:
						totalDays += 31;
					case 4:
						totalDays += 30;
					case 3:
						totalDays += 31;
					case 2:
						totalDays += 28;
						if(year%4==0&&year%100!=0||year%400==0){
							totalDays+=1;
						}
					case 1:
						totalDays += 31;
				}

				totalDays += day;
				console.log(totalDays);
			}
		</script>	
		<button οnclick="welcome()">电话银行系统</button>
		<button οnclick="calDate()">日期计算器</button>
	</body>
</html>


2、循环结构

1、什么是循环结构
循环:一遍又一遍的重复执行相同或相似的代码
生活中的循环:
1、循环听歌:有开始,有结束
2、上学:有开始,右结束
3、长跑运动员:有开始,有结束
循环特点:
1、循环条件
规定了循环的执行次数
2、循环操作
要执行相同或相似的语句-循环中做了什么
2、循环结构-while循环
1、语法
while(条件){
//循环操作
}


流程:
1、判断 循环条件
2、如果条件为真,则执行循环操作,然后再判断条件,如果条件为真,则继续执行循环操作... ...
3、直到条件为 假时,则结束循环操作
练习1:
1、打印 1-1000之间 所有的数字
2、计算 1-1000之间 所有的数字之和

3、计算 1-1000之间 所有奇数数字之和

<!doctype html>
<html>
	<head>
		<title>标题</title>
		<meta charset="utf-8">
	</head>
	<body>
		<script>
			/*打印 1-1000 之间所有的数字*/
			function fun1(){
				/*循环条件:从第1遍开始 到 第1000遍结束*/
				var i=1;
				/*循环操作:将 循环条件变量 打印输出,更新循环变量*/
				while(i<=1000){
					console.log(i);
					i++;
				}
			}
			
			/*计算 1-1000之间所有数字的和*/
			function fun2(){
				/*循环条件:从第1遍开始,到第1000遍结束*/
				/*循环操作:将 循环条件值 进行累加,更新循环变量 */
				var i=1;
				var sum=0;//用于累加1-1000之和的变量
				while(i<=1000){
					sum=sum+i;
					i++;
				}
				console.log(sum);
			}

			/*3、累加 1-1000之间 所有奇数的和*/
			function fun3(){
				/*条件:从1开始 到 1000结束*/
				/*操作:判断 循环条件是否为 奇数,如果是奇数 则累加*/
				var i=1;
				var sum=0;
				//方案1
				/*while(i<=1000){
					//判断 i 的奇偶性
					if(i % 2 == 1){
						sum+=i;
					}
					i++;
				}*/
				//方案2 :让i一直以奇数方式变化
				while(i<=1000){
					sum+=i;
					i=i+2;
				}
				console.log(sum);
			}
		</script>
		<button οnclick="fun1()">打印1-1000之间所有的数字</button>
		<button οnclick="fun2()">打印1-1000之间所有数字的和</button>
		<button οnclick="fun3()">打印1-1000之间所有奇数的和</button>
	</body>
</html>


2、循环流程控制语句
1、continue
终止本次循环的执行,继续下次循环

2、break
提前退出循环结构


4、循环结构-do...while()循环
1、语法 
do{
//循环操作
}while(条件);

流程:
1、先执行循环操作
2、判断循环条件
如果值为真,则继续执行循环操作
如果值为假,则退出循环
场合:
先执行循环体,根据循环体内的操作再决定循环条件时,使用do...while
2、while 与 do...while 的区别
1、while :先判断,后执行,最少一次都不执行循环操作
2、do...while : 先执行,后判断,最少执行一次循环操作
3、练习
猴子吃桃问题
猴子摘下了若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天,又将剩下的桃子吃了一半,又多吃一个。以后每天都吃了前一天剩下的一半零一个。到第10天的时候,发现只剩下一个桃子。求:第一天共摘下多少个桃子。
<!doctype html>
<html>
	<head>
		<title>标题</title>
		<meta charset="utf-8">
	</head>
	<body>
		<script>
			function monkey(){
				/*1、计数器(从10开始,到2结束)*/
				var i=10;
				/*2、每天剩余量 :left,前一天总量:total*/
				var left=1,total;

				/*循环:
					1、条件:到第2天结束
					2、操作:
						通过 left 计算 total
						再将 total 赋值 给left
				*/
				while(i>1){
					total=(left+1)*2;
					left=total;
					i--;
				}
				console.log("猴子第一天共摘了"+total+"个桃子");
			}

			function peach(){
				var i=10;
				/*第一天剩余多少个桃子*/
				var total=1;
				while(i>1){
					total=(total+1)*2;
					i--;
				}
				console.log(total);
			}
		</script>
		<button οnclick="peach();">猴子摘桃</button>
	</body>
</html>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值