目录
(一)程序
(二)逻辑分支语句
1.概念
2.分类
(三)三元运算(扩展)
1.概念
2.语法格式
3.示例
(四)单步调试
步骤
(五)练习
程序是由一条条语句构成
程序 = 程序语句 + 数据结构 + 算法
程序语句: var num; // 变量申明语句 num = 100; // 变量赋值语句 var num = 100; console.log('内容') // 控制台输出语句 console.log('内容',num) // 内容100 alert('内容') 函数调用语句
我们的 js 代码都是顺序执行的(从上到下)
逻辑分支就是根据我们设定好的条件来决定要不要执行某些代码
IF条件分支结构
<!--if语句-->
通过一个if语句来决定代码执行与否
语法:if(条件){ 要执行的代码 }
通过()里面的条件是否成立来决定{ }里面的代码是否执行
if(条件){ 执行代码 } 如果(条件成立){ 执行代码 } <script> console.log('程序开始执行') var a = 10 if(a < 10){ console.log('条件成立') } console.log('程序结束') </script> if语句块只有一行代码时,大括号可以省略
<!--if else 语句-->
通过if条件来决定,执行哪一个{ }里面的代码
语法:if(条件){ 条件为 true 的时候执行 } else { 条件为 false 的时候执行}
两个{ }内的代码一定有一个会执行
if(条件成立){ 执行代码 }else{ 执行代码 } 如果(条件){ 条件成立代码 }否则{ 条件成立代码 } <script> var age = 18 //声明名为age的变量,赋值为18 if (age >= 18) { console.log('成年人') } else { console.log('未成年人') } </script>
<!--if else if...语句-->
可以通过 if 和 else if 来设置多个条件进行判断
语法: if(条件1){ 条件1为 true 的时候执行 } else if (条件2){ 条件2 为 true 的时候执行}
会从头开始依次判断条件
如果第一个条件为 true了,那么就会执行后面的 { }里面的内容
如果第一个条件为 false,那么就会判断第二个条件,依次类推
多个 { } ,只会有一个被执行,一旦有一个条件为 true 了,后面的就不再判断了
<!--if else if ... else语句-->
和上边的 if else if ... 基本一致,只不过是在所有条件都不满足的时候,执行最后else后面的 { }
语法格式: if(条件1){ 执行代码1 }else if(条件2){ 执行代码2 }else{ 执行代码3 } <script> var a = 9 if(a > 10){ console.log('a > 10') }else if(a == 10){ console.log('a == 10') }else{ console.log('a < 10') } var c = 10 var b = 20 if(a > 10 ){ if(b > 15){ console.log('b > 15') } }else{ if(c < 10 ){ console.log(' c < 10') } } </script>
SWITCH条件分支结构
多分支语句 switch-case ,也是条件判断语句的一种,是对于某一个变量的判断。
语法:
switch(条件表达式值){ case 值1: 语句块1 [break] case 值2: 语句块2 [break] case 值3: 语句块3 [break] ... [default]: 默认语句块 }
注: 在 switch-case语句中 break作用: 跳出case,结束swtich语句
计算switch表达式值
匹配case分支,从上向下匹配
遇到break结束switch
如果所有case都未匹配到,执行default默认分支
三元运算也叫三目运算,就是用两个符号组成一个语句,是对if else 语句的一个简写形式。
条件表达式? 表达式A :表达式B (如果条件表达式成立,取 表达式A的值作为三元运算值,否则取表达式B )
// 判断年龄,如果年龄大于18,是成年人,否则不是成年人 var age = 14 var str = age > 18? '成年人':'未成年人' console.log(str) // 求53,42和64三个数的最大值,将最大值输出打印到控制台 var x = 53 var y = 82 var z = 64 var max = x > y ? (x > z ? x : z) : (y > z ? y : z) console.log(max)
1.打开浏览器加载代码
2. 右键查检->切换到sources->选中html文档
3. 设置断点
4.刷新->重新开始执行(f11执行代码)
1.求53,42和64三个数的最大值,将最大值输出打印到控制台
分析: 假设第一个数是大值 max = x 让后面的数依次与max比较, 如果比较max大,则将其值赋值给max 比较完之后max存储一定是所有数的最大值 <script> var x = 20; var y = 140; var z = 54; var max = x // 存储最大值 if (y > max) { max = y } if (z > max) { max = z } console.log('最大值是 ' + max) </script>
2.判断一个整数是偶数还是奇数,并输出判断结果
分析: 偶数或奇数:偶数, 能被2整除的数 num % 2 == 0 //num除2取余,余数等于0,能被2整除 <script> var num = 5 if(num % 2 == 0){ console.log('是偶数') }else{ console.log('是奇数') } </script>
3.根据公式(身高-108)*2=体重,可以有10斤左右的浮动。来观察测试者体重是否正常 。
分析: 张三: 体重: 180斤 身高: 175cm (身高-108)* 2 = 体重 var height = 175 // 身高 var weigth = 180 // 体重 var bzweigt = (height - 108) * 2 // 标准体重(90-10 < 体重 < 90+10) <script> var height = 175 //xx人身高 var weight = 150 //xx人体重 //求正常范围的体重 var bzweigt = (height - 108) * 2 // 标准体重 if(weight > (bzweigt + 10)){ console.log('体重超标') }else if(weight < (bzweigt - 10)){ console.log('体重偏轻') }else{ console.log('正常体重') } </script>
4.判断指定变量是什么数据类型
分析: 基本数据类型: number string null boolean undefined <script> var a = true if(typeof a == 'number'){ console.log('数值类型 number') }else if(typeof a == 'string'){ console.log('字符串类型 string') }else if( typeof a == 'boolean'){ console.log('布尔类型 boolean') }else if( typeof a == 'undefined'){ console.log('未定义类型 undefined') }else{ console.log('空类型 null') } </script>
5.输入年份,计算某一年是否是闰年 (闰年能被4整除并且不能被100整除,或者能被400整除)
分析: var year = 2021 var isLooper = false // false 表示不是闰年, true表示是闰年 闰年: 能被4整除并且不能被100整除,或者能被400整除 能被4整除 => year % 4 == 0 不能被100整除 => year % 100 != 0 能被400整除 => year % 400 == 0 <script> var isLooper = false // false 表示不是闰年, true表示是闰年 var year = 2020 // 年份 // 判断闰年条件 if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) { isLooper = true } if(isLooper){ console.log(year + '是闰年') }else{ console.log(year + '不是闰年') } </script>
6.输入分数,判定成绩等级 (成绩对应等级 90-100:A级 80-89:B级 70-79:C级 60-69:D级 其它:不合格)
分析: 100/10 10 A 90-99 /10 9 A 80-89 /10 8 B 70-79 /10 7 C <script> var score = 97 var grad = parseInt(score / 10) switch (grad) { case 10: case 9: grad = "A" break; case 8: grad = "B" break; case 7: grad = "C" break; case 6: grad = "D" break; default: grad = "不合格" break; } console.log("你的成绩为"+grad) </script>