程序
程序 = 程序语句 + 数据结构 + 算法
var num; // 变量申明语句
num = 100; // 变量赋值语句
var num = 100;
console.log('内容',num) // 控制台输出语句
alert('内容') 函数调用语句
逻辑分支语句
- js 代码都是从上到下顺序执行的
- 逻辑分支就是根据我们设定好的条件来决定要不要执行某些代码
if语句
-
通过一个 if 语句来决定代码执行与否
-
语法:
if (条件) { 要执行的代码 }
-
通过
()
里面的条件是否成立来决定{}
里面的代码是否执行
var age = 18 //给变量赋值
if (age >= 18) {
alert('是成年人')
} // 条件为 true 的时候执行 {} 里面的代码
if (age < 18) {
alert('不是成年人')
}
// 条件为 false 的时候输出不是成年人
if - else 语句
-
通过 if 条件来决定,执行哪一个
{}
里面的代码 -
语法:
if (条件) { 条件为 true 的时候执行 } else { 条件为 false 的时候执行 }
-
两个
{}
内的代码一定有一个会执行
var num = 10
if(num > 10){
console.log('num 值大于10');}
else if(num < 10){
console.log('num 值小于10');}
else{console.log('num值等于10' );
}
例题:
if语句嵌套
语法:
if(条件){
语句块1
if(条件2){
语句块2
}
}
练习:
//求 54 67 89三者最大值
var a = 54
var b = 67
var c = 89
var max = a
if(max < b || max < c){
max = b
if(max < c){
max = c
console.log('最大值为:', max)
}
}else{
console.log('最大值为',max)
}
if - else if 语句
-
可以通过 if 和 else if 来设置多个条件进行判断
-
语法:
if (条件1) { 条件1为 true 的时候执行 } else if (条件2) { 条件2为 true 的时候执行 }
-
会从头开始依次判断条件
-
多个
{}
,只会有一个被执行,一旦有一个条件为 true 了,后面的就不在判断了// 第一个条件为 true,第二个条件为 false,最终会打印 “我是代码段1” if (条件1) { alert('我是代码段1') } else if (条件2) { alert('我是代码段2') }
if - else if - else 语句
-
和之前的
if else if ...
基本一致,只不过是在所有条件都不满足的时候,执行最后 else 后面的{}
-
if (条件1) { alert('我是代码段1') } else if (条件2) { alert('我是代码段2') } else { alert('我是代码段3') }//条件1 2都不成立执行最后else
练习题目:
判断一个整数,属于哪个范围:大于0;小于0;
var a = 52 if( a >= 0 ){ if(a > 0){ console.log('a大于0',a) } if(a = 0){ console.log('a等于0',a) } } if( a < 0){ console.log('a小于0',a) }
等于0 判断一个整数是偶数还是奇数;
var b = 54 if( a % 2 == 0){ console.log('b是偶数',b) }else{ console.log('b是奇数',b) }
并输出判断结果 开发一款软件,根据公式(身高-108)*2=体重,可以有10斤左右的浮动。来观察测试者
var cm = 153 var tz = 84 var kg if(cm > 0){ kg = (cm-108)*2 if( tz > kg ){ console.log('您的身高:', cm ,'理想体重为:',kg ,'实际体重为:' , tz ,'偏重') } else if( tz < kg ){ console.log('您的身高:', cm ,'理想体重为:',kg ,'实际体重为:' , tz ,'偏瘦') } }
输入年份,计算某一年是否是闰年 (闰年能被4整除并且不能被100整除,或者能被400整除)
var year = 2034 if((year % 4 == 0) && (year % 400 == 0) || (year % 100 != 0)){ console.log(year,'是闰年') } else{ console.log(year,'不是闰年') }
输入分数,判定成绩等级 (成绩对应等级 90-100:A级 80-89:B级 70-79:C级 60-69:D级 其它:不合格)
var grade = 89 if(grade >= 90 && grade <=100){ console.log('您的等级为A:',grade) }else if(grade >= 80 && grade <=89){ console.log('您的等级为B:',grade) }else if(grade >= 70 && grade <=79){ console.log('您的等级为C:',grade) }else if(grade >= 60 && grade <=69){ console.log('您的等级为D:',grade) } else{ console.log('您的等级为不合格:',grade) }
求四个数56,48,19,72的最小值
//求最小值 var a = 54 var b = 48 var c = 19 var d = 72 var min = a if(min < b && min < c && min <d){ console.log('最小值为:',min) } if( min > b || min > c || min > d ){ if(min > b){ min = b } if(min > c){ min = c } if(min > b){ min = b } console.log('最小值为:',min) }
SWITCH多分支语句
语法:
-
例子: 输入一个数字 ,判断星期几switch (表达式值) { case 值1: 语句块1 [break] //终止符号 case 值2: 语句块2 case 值3: 语句块3 default: 语句块 }
-
var week = 2 switch (week%7) { //取余 保证值全在1-7里 case 1: console.log('星期一') break case 2: console.log('星期二') break case 3: console.log('星期三') break case 4: console.log('星期四') break case 5: console.log('星期五') break case 6: console.log('星期六') break default: console.log('星期天') }
switch穿透
- 利用break特性和case穿透
var year = 2022 //定义年份 var mouth = 10 //定义月份 var day //声明天数 switch(mouth){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: day = 31 break case 4: case 6: case 9: case 11: day = 30 break case 2: if((year % 4 == 0) && (year % 400 == 0) || (year % 100 != 0)){ day = 29 } else{ day = 28 } } console.log(year+'年'+mouth+'月'+'有'+day+'天')
var score = 89 var grade switch (parseInt(score / 10)) { case 10: case 9: grade = 'A' break case 8: grade = 'B' break case 7: grade = 'C' break case 6: grade = 'D' break default: grade = '不合格' } console.log(score + '分成绩等级是 ' + grade)
三元运算符
-
两个符号 组成的语句
-
if-else 语句的简写形式
-
条件 ? 语句1 : 语句2 //只能写一条语句,不能是语句块
var age = 18; age >= 18 ? console.log('已经成年') : console.log('没有成年')
单步调试
- 找程序bug的一种方式
- 让程序语句一条一条执行,观察程序语句执行输出情况
使用单步调试
- 断点