10、JS的分支语句
分支语句:
* 根据我们设置好的条件!!! 然后来决定执行那些代码
*
①.if 分支语句
语法:
* if(条件) {满足条件的时候执行的代码,如果不满足,这里边的代码永远不执行}
* 条件最终会返回一个布尔值,如果为真,那么会执行对应的代码
* 如果为假,那么不会执行
```js
var a = 1
if (a === 1) {
console.log(1)
}
if (a === 2) {
console.log(1)
}
var a = 100
if(a === 1) {
console.log(1)
} else if(a === 2) {
console.log(2)
} else {
console.log('a 不等于 1或者2')
}
```
if分支的课堂练习
var num = 12
if(num % 2 === 0) {
console.log('偶数')
}else {
console.log('不是偶数')
}
var a = 12
if (10 <= a && a <= 20) {
console.log('数字在10~20之间')
} else {
console.log('数字不在10~20之间')
}
console.log(10<=9<=20)
console.log(10<=9)
console.log(false<=20)
console.log(true);
var num = 62
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('你危险了')
}
var num = 2023
if (num % 4 === 0 && num % 100 !== 0 || num % 400 === 0) {
console.log('是闰年')
} else {
console.log('不是闰年')
}
②.switch 分支语句
和if 相同 ,也属于条件分支语句
* if(要判断的变量) {
* 想要执行的代码
* }
*
* switch (要判断的变量) {
* case 情况1:
* 情况1要执行的代码
* break;
* case 情况2:
* 情况2要执行的代码
* break;
* }
*
* 判断逻辑:判断的变量 是否 ===case上说明的情况
*
* 注意:switch...case 在判断时,执行时全等,也就是 === 所以数据类型不同时,也不会正确执行
```js
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;
default:
console.log('上述情况都不满足的时候,我会执行')
}
```
③.switch穿透语法
switch 在书写的时候 如果不写break 会出现穿透现象
*
* 穿透现象:
* 找到第一个满足的case的时候,开始执行这个代码
* 执行完毕如果没有break 会继续执行下一个case
* 直到 遇到一个break 或者 分支语句全部执行完毕
```js
var a = 100
switch (a) {
case 1:
console.log('case 1 执行')
case 10:
console.log('case 10 执行')
case 20:
console.log('case 20 执行')
case 30:
console.log('case 30 执行')
case 40:
console.log('case 40 执行')
case 100:
console.log('case 100 执行')
break;
default:
console.log('上述情况都不满足的时候,我会执行')
}
```
```js
var month = 11
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('2月有28天')
break
}
```
switch课堂练习
var num = 67
switch (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
case 5:
console.log('你危险了')
break
}
11、三元表达式
```js
var a = 100
a > 1 ? console.log('如果我输出了,说明 a 的值 大于 1'):console.log('如果我输出了,说明 a 的值小于 1')
var num = 1
var gender = num === 1 ?'男':'女'
console.log(gender)
```
12、while循环语句
①.while循环语句
意义:帮助我们去执行 重复的代码
*
* 什么是循环语句
* 根据给出的某些条件,重复执行一段代码
*
* 循环语句
* 1.初始化
* 2.条件判断
* 3.要执行的代码
* 4.改变自身(改变初始化的内容)
*
* while 循环
* 语法: while (条件) {满足条件时执行的代码}
```js
var num = 0
while (num < 1000) {
console.log(1)
num++
}
```
②.while循环的课堂练习
```js
var num = 1
var sum = 0
while (num <= 100) {
sum = sum + num
num++
}
console.log(sum)
```
13、循环语句练习
```js
var year = prompt('请输入年份') - 0
var month = prompt('请输入月份') - 0
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:
year % 4 === 0 && year % 100 !== 0 || year % 400 === 0?console.log('因为',year,'是闰年,所以2月有29天'):console.log('因为',year,'不是闰年,所以2月有28天')
break;
}
```
```js
var num = 1
var sum = 0
while(num <= 100) {
if(num % 3 === 0) {
sum = sum + num
}
num++
}
console.log('所有3的倍数的和为:'+sum)
```
14、do...while循环
①.do...while循环
是一个类似 while 的循环语句
*
* while循环在开始的时候,会先判断条件是否成立 然后决定是否执行
* do..while 循环在开始第一次的时候,不会判断条件,也就是说,不管条件成功与失败,第一次都会执行
var num = 10
do{
console.log(num)
num--
}while(num < 5)
②.do...while循环练习
```js
var password;
do {
password = prompt('请输入您的密码')
}while(password !== '12345')
```
15、for 循环
for 循环
* 也是 循环语句的一种,但是 语法上和另外两个不同!
* 语法:for (1.初始化 2.条件 3.改变自身){4.循环要执行的代码}
* 目前for循环的使用场景来看,要稍微多一点,但不代表可以完全替代 while 循环或者do...while循环
```js
for(var n = 0; n < 3; n++) {
console.log(n)
}
```
②.for循环练习
```js
var sum = 0
for (var i = 1; i <= 100; i++) {
sum += i
}
console.log(sum)
var sum = 0
for (var i = 1; i <= 100; i++) {
if(i % 2 ===0 ){
sum += i
}
}
console.log(sum)
for (var year = 1000; year <= 2022; year++){
if(year % 4 === 0 || year % 100 === 0 || year % 400 ===0){
console.log(year,'是闰年')
}
}
for(var i = 100; i <= 999; i++){
var baiW = parseInt(i / 100)
var shiW = parseInt(i / 10 % 10)
var geW = i % 10
var sum = Math.pow(baiW,3)+Math.pow(shiW,3)+Math.pow(geW,3);
if(sum === i){
console.log(i,'是一个水仙花数')
}
}
```
16、流程控制语句
* 通过两个关键字,可以起到控制循环的一个作用,这就是流程控制
*
* 1. break(结束掉整个循环,不管循环后边还有几轮)
* 今天早上我买了五个包子,然后呢我吃了3包子,这个时候我吃饱了,我吃不下去了 此时我就结束掉了吃包子这件事,也就是说第四个和第五个包子我就不吃了
```js
for(var i = 1; i <= 5; i++) {
console.log('我吃了一个包子')
if(i === 3) {
break
}
}
```
* 2.continue(跳出当前这一轮循环,直接开始下一轮循环)
* 今天早上我买了五个包子,然后呢我在吃第三个包子的时候,这个时候,第三个包子掉地上了,所以这个包子我不吃了 此时我开始吃第四个包子与第五个包子
```js
for (var i = 1; i <= 5; i++) {
if(i === 3) {
console.log('第三个包子掉地上了,我不吃这个包子了')
continue
}
console.log('我吃了一个包子')
}
```
17、循环嵌套
* 注意:外层循环的变量与内层循环的变量不要相同
```js
for (var j = 0; j < 3; j++) {
for (var i = 0; i < 3; i++) {
console.log(i)
}
console.log('j的值为',j)
}
```
for循环课堂案例
* 需求:在页面上打印9个*
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('<br>')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
document.write('*')
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>')
}
for(var j = 1; j <= 9; j++) {
for (var i = 1; i <= j; i++){
sum = i * j
document.write(i , '*' , j , '=' , sum,' ')
}
document.write('<br>')
}
18、课后练习
```js
//1. 用户输入一个整数 n,计算 n 的阶乘。即`n*(n-1)*(n-2)*……*3*2*1`
var sum = 1 //初始化
for (var n = parseInt(prompt('请输入n的值'))
// 计算这个数字的阶乘
sum = sum * n //执行代码
}
console.log(sum)
/* var num = prompt('请输入一个数字') - 0
var sum = 1
for(var i = 1
sum *= i
}
console.log(sum)
//2. 苹果 3 元一个, 鸭梨 2 元一个, 桃子 1 元一个。现在想用 200 元正好买 100 个水果, 用 JS 列出所有购买方案
/**
* 核心内容
* 条件:
* 1.买三种水果一共花200元 3*苹果+2*鸭梨+1*桃子=200
* 2.买三种水果一共买100个 苹果+鸭梨+桃子=100
* */
for(var a = 0
for(var b = 0
for(var c = 0
if(a + b + c === 100 && 3*a + 2*b + c === 200){
console.log('购买方案为','苹果',a,'鸭梨',b,'桃子',c)
}
}
}
}
```