第二章 js逻辑控制 ① 笔记

本文详细介绍了JavaScript中的流程控制结构,包括顺序、分支(if单分支、if...else双分支、if...elseif...else多分支)和switch语句的用法。通过实例演示了如何根据条件执行不同代码块,以及如何进行等值判断。文章还提供了多个课后练习题,以加深理解。
摘要由CSDN通过智能技术生成

回顾

ECMA(javascript的官方标准化组织)基本语法:
注释,变量,运算符,数据类型,流程控制,对象
数据类型: 字符串,数值(整数,小数),布尔值(true/false),null,undefined
流程控制: 顺序,分支,循环

本章目标

流程控制:
顺序: 按照代码的书写次序依次执行
分支: 本节课内容
 1. if分支: 单分支,双分支,多分支
 2. switch分支
循环: 下节课

第一节:流程控制

1.1 什么是流程控制

流程控制: 程序在执行过程中,通过特定条件控制程序的执行次序。

1.2 三种程序结构

1.顺序结构:从上往下,(等式)从右到左 (如果右边是表达式 (左到右))
2. 分支结构:控制代码何时(根据条件)执行,是否执行。
3. 循环结构:控制代码执行(根据条件)多少次。
在这里插入图片描述

第二节:分支结构–if 如果

2.1 单if 条件判断: 单分支

语法:

if(条件表达式){
	代码块;
}

执行过程: 如果 if后面括号里的条件为true,则执行大括号中的代码块。否则不执行。
注意: 在这个代码块中,不能乱加";"

<script type="text/javascript">
	//输入分数
	var score = Number(prompt("请问小明你考了多少分?",""));
	// if单分支判断
	// 如果(if) 分数大于等于90(条件) 成立:执行里面的代码
	if(score>=90){
	alert("奖励你一辆电动车!");
	}
</script>

在这里插入图片描述

2.2 if else 判断: 双分支

双分支:两者必选其一
语法:

if(条件表达式){
	代码块1;
}else{
	代码块2;
}

执行流程:
1.如果if后面条件表达式成立,则执行代码块1
2.如果if后面条件表达式不成立,则执行代码块2
注意: else 不能加条件

// if else 双分支
//输入分数
var score = Number(prompt("请问小明你考了多少分?",""));
// if双分支判断:分数大于等于90奖励电动车,否则,抽鞭子
if(score>=90){
	alert("奖励一辆电动车");
}else{
	alert("抽鞭子");
}

在这里插入图片描述

2.3 多重if 判断

语法:

if(条件表达式1){
	代码块1;
}else if(条件表达式2){
	代码块2;
}else if(条件表达式3){
	代码块3;
}
.... // 省略部分条件
else{ // else可以省略
	代码块n;
}

执行流程:
 1. 代码自上而下执行,如果条件表达式1成立,则执行代码块1, 代码块1执行之后,其它分支不再执行(各个分支具有互斥性)
 2. 如果条件表达式1不成立,则判断条件表达式2是否成立,如果成立,则执行代码块2
 3. 如果条件表达式2不能成立,则判断条件表达式3是否成立,如果成立,则执行代码块3
 4. 如果条件表达式3不能成立,则依次判断后续条件。
 5. 如果所有的条件都不成立,则执行else中的代码块。
注意:else是可以省略的,代表没有一个默认选择

// if.. else if..else 多分支
var score = Number(prompt("请问小明你考了多少分?",""));
if(score>=90){ 				// 分数>=90
	alert("优秀");
}else if(score>=80){		//分数>=80
	alert("良好")
}else if(score>=60){		 //分数>=60
	alert("中等");
}else{
	alert("差")
}
// 扩展:能不能反向去写,实现评级,分数由小到大判断
// 扩展: 如果分数是负数,或者 1000分,需要输出分数错误。 如何解决
<script type="text/javascript">
	// 输入数学成绩和语文成绩
	// 如果数学大于80,并且语文大于90
	// 或者数学等于100 并且语文大于70
	// 奖励电动车
	// 其他情况:抽鞭子
	var chinese = Number(prompt("请输入语文成绩:",0));
	var math = Number(prompt("请输入数学成绩",0));
	// 如果分数无效,要提示错误
	// 数学小于0大于100 语文小于0大于100
	// 错误写法: math<0 && math>100
	if(math<0 || math>100 || chinese<0 || chinese>100){
		document.write("分数有误")
	}else if(math>=80 && chinese>=90 ||
		math==100 && chinese>=70){
		document.write("奖励一辆电动车");
	}else{
		document.write("抽鞭子");
	}
	</script
</script>

3.4 if嵌套

var score = Number(prompt("输入分数",""));
if(score>=90){

}else{

	if(score>=80)(){

	}else{

	}
}

小结:

if分支的条件都是针对一定范围的判断

第三节: 分支结构 switch - case

switch: 用于等值判断
if : 用于范围判断

语法:

switch(变量/数据){
	case 数据1:
		代码块1;
		break;
	case 数据2:
		代码块2;
		break;
	case 数据3:
		代码块3;
		break;
	default:
		默认代码块;
		break;
}

执行流程:
1.根据switch后面括号中的数据,与下面case对应的值进行一一对比。
2. 满足某一个case分支,则执行对应的代码块
3. 如果上面的分支都不满足,则执行default后面的代码块
4. 其中break(结束语句执行)表示整个switch语句结束,如果某个分支没有break,则代码会继续向下执行,直到遇到break或者所有语句执行完成,switch语句才会结束。
5. default语句可以省略。

<script type="text/javascript">
		// 令狐冲参加比武大赛:
		//如果是第一名则出任武林盟主
		//如果是第二名则出任武当掌门
		//如果是第三名则出任峨嵋掌门
		//其他情况,逐出师门
		var mc = Number(prompt("请输入令狐冲的比武名次:",""));
		// 针对某个变量值,判断它符合那种情况
		switch(mc){
			case 1: // 如果mc是1的情况
				document.write("武林盟主");
				break;
			case 2: // 如果mc是2的情况
				document.write("武当掌门");
				break;
			case 3: // 如果mc是3的情况
				document.write("峨嵋掌门");
				break;
			default: // 如果mc是其他情况
				document.write("逐出师门");
				break;
		}
		/*
		// 针对某个变量值,判断它符合那种情况
		switch(mc){
			case 1: // 如果mc是1的情况
				document.write("武林盟主");
				break;
			case 2: // 如果mc是2的情况
				document.write("武当掌门");
				break;
			case 3: // 如果mc是3的情况
				document.write("峨嵋掌门");
				break;
			default: // 如果mc是其他情况
				document.write("逐出师门");
				break;
		}*/
		/*
		if(mc==1){
			document.write("武林盟主");
		}else if(mc==2){
			document.write("武当掌门");
		}else if(mc==3){
			document.write("峨嵋掌门");
		}else{
			document.write("逐出师门");
		}*/
	</script>
<script type="text/javascript">
			// 根据今天星期几,输出吃什么
			// 星期1,2 吃米饭 3,4 吃面条 5,6 饺子 7 减肥
			// 根据今天星期几,输出吃什么
			// 星期1,2 吃米饭 3,4 吃面条 5,6 饺子 7 减肥
			var weekDay = prompt("请输入今天星期几?","");
			switch(weekDay){
				case "星期一":
					//document.write("吃米饭");
					//break;
				case "星期二":
					document.write("吃米饭");
					break;
				case "星期三":
					//document.write("吃面条");
					//break;
				case "星期四":
					document.write("吃面条");
					break;
				case "星期五":
					//document.write("吃饺子");
					//break;
				case "星期六":
					document.write("吃饺子");
					break;
				case "星期日":
					//document.write("减肥");
					//break;
				case "星期七":
					document.write("减肥");
					break;
				default:
					document.write("请好好输入!!!");
					break;
			}
		</script>

总结:

流程控制: 顺序结构,分支结构(if,switch),循环结构

课后练习:

1.根据输入的学生成绩,输出奖励或者惩罚
	成绩大于等于90奖励,否则惩罚
2.对学员的结业考试成绩评测 成绩>=90 :优秀 成绩>=80 :良好 成绩>=60 :中等 成
绩<60 :差 。
	要考虑无效成绩,能否实现颠倒分支的判断次序
3.输入令狐冲比武名次,判断江湖地位
	比赛第一名:武林盟主,第二名:武当掌门,第三名:峨眉掌门,其它:逐出师门
4.输入星期几,确定吃什么
	周一周二吃米饭,周三周四吃面条,周五周六吃饺子,周日减肥不吃饭
5.输入地区、文理科以及高考分数,看你是否能上清华
	条件: http://www.gaosan.com/gaokao/304312.html
6.疫情期间,体温检测,如果发烧(大于38度),则检查是否感染,感染则隔离,没有感染则正
常上课
7.根据公式: 标准体重 = 身高-105,该值上下浮动5公斤都是标准体重。否则偏胖或偏瘦。
8.输入年份,月份,判断该年对应的月份有多少天
	闰年: 年份能被4整除并且不能被100整除,或者能被400整除
	闰年二月29天。平年28天
9.根据三角形的定理:三角形两边之和大于第三边。输入三角形的三个边长,判断能否构成三角形。
*10.星座测试:输入你的月份和日期,输出你是哪个星座的人,以及你的星座特征。
	条件: https://baike.baidu.com/item/%E5%8D%81%E4%BA%8C%E6%98%9F%E5%BA%A7/71359?fr=aladdin
*11.根据工资计算个人所得税(计算条件参看附件文档)
12.输入三个数,输出三个数中最大和最小的那个数
*13.根据日期,判断这个日期是这一年的第几天。 (使用switch 穿透编写)
例如: 2016,02,11,计算后结果为42
14.做学院评奖系统
	如果数学成绩大于80分并且语文成绩大于80分,获奖学金500元。
	如果数学小于30并且语文小于30分,输出重修。
15.两个数a、b,如果a能被b整除或a加b大于1000,则输出a,否则输出b
16.输入考试成绩,显示所获奖励。成绩==100分,爸爸给他买辆车。成绩>=90分,妈妈给他买MP4。
	90分>成绩>=60分,妈妈给他买本参考书。成绩<60分,什么都不买 。
17.张三为手机设定了自动拨号按1:拨爸爸的号按2:拨妈妈的号按3:拨爷爷的号 按4:拨奶奶的号
18.输入一个数,判断它是否能被3、5、7整除,注意考虑同时整除的情况。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值