分支语句:根据我们设置好的条件,然后来决定执行哪些代码
1.if 分支语句 语法:
if(条件){满足条件时执行的代码,如果不满足,这里边的代码永远不会执行}
条件最终会返回一个布尔值,如果为真,那么会执行对应的代码;如果为假,那么不会执行
if 分支语句的基本写法
var a = 3
//if(条件){要执行的代码}
if(a===1){//如果a === 1这个条件成立,那么会执行打印1
console.log(1)
}
if(a===2){//如果a === 2这个条件成立,那么会执行打印2
console.log(2)
}
if... else...的嵌套写法
var a = 100
if (a === 1){
console.log(1)
}else if(a === 2){
console.log(2)
}else{ //最后结尾的else分支只会在前面所有的条件都不满足的时候才会执行,前面如果有一个条件成立,那么else就不会执行
console.log('a不等于1或者2')
}
if分支语句的例题
- 根据成绩(0-100)在控制台输出不同的内容:
90+ ->优秀
80-89->中等
70-79->及格
60-69->要努力
0-59 -> 你危险了
var num=80
if(num>=90){
console.log('优秀')
}else if(num>=80){
console.log('中等')
}else if(num>=70){
console.log('及格')
}else if(num>=60){
console.log('要努力')
}else{
console.log('你危险了')
}
- 判断一个年份是不是闰年 闰年的条件:1. 4年一润,百年不闰 2. 每四百年补一润
var year=2024
if(year % 4 === 0 && year % 100 !==0 || year % 400 === 0){
console.log('今年是闰年')
}else{
console.log('今年不是闰年')
}
2. switch分支语句
- 语法:
switch(要判断的变量){
case 情况1:
情况1要执行的代码
break;
case 情况2:
情况2要执行的代码
break;
}
-
判断逻辑:判断的变量 是否 === case 上说明的情况
-
注意: switch...case在判断时,执行的全等,也就是 === 所以数据类型不同时,也不会正确执行.
var a = '100'
switch(a){
case 1:
console.log('如果我执行,说明a === 1')
break;
case 10:
console.log('如果我执行,说明a === 10')
break;
case 100:
console.log('如果我执行,说明a === 100')
break;
case '100':
console.log('如果我执行,说明a是一个字符串类型的100')
break;
default:
console.log('上述情况都不满足的时候,我会执行')
}
2.1 switch语句的穿透现象
穿透现象:找到第一个满足的 case 的时候,开始执行这个代码,执行完毕如果没有break 会继续执行下一个case,直到遇到一个break或者分支语句全部执行完毕.
1.switch穿透语法案例:根据月份输出对应的天数(2月按照28天)
var month = 4 //在控制台输出5月有几天?
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
console.log('有31天')
break;
case 4:
case 6:
case 9:
case 11:
console.log('有30天')
break;
case 2:
console.log('有28天')
break;
}
2.1.根据成绩(0-100)在控制台输出对应的成绩100 ->完美;90+ ->优秀; 80-89->中等;70-79->及格; 60-69->要努力; 0-59 -> 你危险了!
var num = 87
switch(num3=parseInt(num/10)){
case 10:
console.log('完美')
break
case 9:
console.log('优秀')
break
case 8:
console.log('中等')
break
case 7:
console.log('及格')
break
case 6:
console.log('要努力')
break
default:
console.log('你危险了')
break
}
3.三元表达式
- 别名: 三目表达式 三目运算符 三目 问号冒号表达式
- 语法: 条件 ?条件为真时执行的代码 :条件为假时执行的代码
- 意义: 对if 分支语句做一个简化操作
- 注意:不管条件真还是假 代码都只能写一行!!!
- 利用三元表达式给变量赋值
var num = 1 //约定,如果num === 1那么代表为男性;如果num !== 1那么代表为女性
var gender = num === 1 ? '男' : '女'
console.log(gender)
4. while循环语句
-
意义:帮助我们去执行重复的代码
-
什么是循环语句?根据给出的某些条件,重复执行一段代码
-
循环语句:1.初始化 2.条件判断3.要执行的代码 4.改变自身(改变初始化的内容)
-
语法: while(条件){满足条件时执行的代码}
-
whlie案例: 求1-100之间的所有数字相加的和
var num =1 //1.初始化
var total=0//用于存储 1-100之间所有数字相加的和
while(num<=100){ //判断条件
// total=total + num //要执行的代码
total += num
num++ //改变自身
}
console.log(total)
5. do...while 循环
是一个类似 while 的循环语句,while 循环在开始的时候,会先判断条件是否成立 然后决定是否执行代码;do...while 循环在开始的时候,不会判断条件,也就是说,不管条件是否成立,第一次都会执行
var num = 10
do{//第一次不会管条件是否成立,他一定会执行一次
//要执行的代码
console.log(num)
num--
}while(num < 5)
- 案例:
需求:用户输入密码,密码正确,正常向下执行,密码错误,让用户重新输入密码
var password
do{
password = prompt('请您输入密码')
console.log('密码正确')
}while(password != '12345') //如果 password !==12345 那么继续执行循环,如果密码正好是12345 那停止循环
6. for循环
- 也是循环的一种,但是语法上和另外两个不同!
- 语法:for(1.初始化;2.条件;3.改变自身){4.循环要执行的代码}
//while循环
var num = 0
while(num < 3){
console.log(num)
num++
}
console.log('手动分割线============')
//用 for 循环重构
for(var n = 0; n < 3; n++){
console.log(n)
}
- 案例:1.求1-100之间所有的和 用 for 循环
var sum = 0
for(var i = 1; i <= 100; i++){
sum += i
}
console.log(sum)
- -案例: 2.求1-100之间所有偶数的和 用 for 循环
var sum = 0
for(var i = 1; i <= 100; i++){
i % 2 === 0 ? sum += i : sum += 0
}
console.log(sum)
- 案例: 3.求出1000-2022之间所有的闰年,输出在页面
//1.求出1000-2022之间所有的年份
for(var year = 1000; year <= 2022; year++){
//2.求出这个区间所有的闰年
if(year % 4 === 0 && year % 100 !== 0 || year % 400 === 0){
document.write(' ', year,'年是闰年 ')
}
}
- 案例4:求水仙花数(有一个三位数(100-999) 各个位置上的数字的三次方的和 正好等于自身 那么说明这个数字就是水仙花数)
for(var i = 100; i <= 999; i++){
//2.1先计算各个位置上的数字的值是什么,也就是想办法拿到个位 十位 百位 的值
var baiW = parseInt(i / 100)
var shiW = parseInt(i / 10 % 10)
var geW = i % 10
//2.2计算 三个位置上的数字的 三次方的和
var sum = baiW * baiW * baiW + shiW * shiW * shiW + geW * geW * geW
// var sum = Math.pow(baiW,3) + Math.pow(shiW,3) + Math.pow(geW,3)
//2.3判断 三次方的和 是 等于 自身
if(sum === i){
console.log(i,'是一个水仙花数')
}
}
7.流程控制语句
通过两个关键字,可以起到控制循环的一个作用,这就是流程控制
- break 结束整个循环,不管循环后边还有几轮
for(var i = 1; i <= 5; i++){
console.log('我吃了1个包子')
if(i === 3){
break //当循环执行到 i=3 的时候,此时这个if判断的条件成立,开始执行内部代码,也就是执行break,结束整个循环
}
}
- continue 跳出当前这一轮循环,直接开始下一轮循环
for(var i = 1; i <= 5; i++){
if(i === 3){
console.log('第三个包子掉地上了,我不吃他了')
continue
}
console.log('我吃了1个包子')
}
8.循环嵌套
- 案例:在页面上打印99个号
for(var j = 0; j < 9; j++){ //控制有多少行
for(var i = 0; i < 9; i++){ //控制一行有多少个
document.write('*',' ')
}
document.write('<br>')
}
- 在页面上打印一个三角形
for(var j = 0; j < 9; j++){
for(var i = 0; i < j; i++){
document.write('*')
}
document.write('<br>')
}