JavaScript循环结构语句知识点梳理

四种书写形式
1. if () {}
条件满足就执行, 不满足就不执行
2. if () {} else {}
条件满足就执行 if 后面的 {} 里面的代码
条件不满足就执行 else 后面的 {} 里面的代码
3. if () {} else if () {} …
从左到右, 依次判断条件, 哪一个条件满足了
就执行哪一个 if 后面的 {} 里面的代码
前面的满足了, 后面的就都不管了, 直接跳过
多有条件都不满足的时候, 就没有代码执行
4. if () {} else if () {} else {}
从左到右, 依次判断条件, 哪一个条件满足了
就执行哪一个 if 后面的 {} 里面的代码
前面的满足了, 后面的就都不管了, 直接跳过
所有条件都不满足的时候, 执行 else 后面的 {} 里面的代码
条件分支语句 - switch
也是我们条件分支语句的一种
语法:
switch (要判断的变量) {
case 情况一 :
情况一满足的时候执行的代码
break
case 情况二 :
情况二满足的时候执行的代码
break
default :
所有情况都不满足的时候执行的代码
}
解释单词:
switch -> 开关 道岔
case -> 情况 方案
default -> 默认
break -> 断开 断点
注意:
1. 小括号里面直接写要判断的变量就可以了, 不需要 符号
2. case 后面的情况不能写范围的比较, 只能是 全等(=) 的比较
3. 每一个 case 后面的 break 都要写上, 如果不写会发生一个穿透的情况
-> 就是不管下一个 case 是不是满足, 都会执行下一个 case 的代码
4. 向下穿透的效果, 会从第一个满足的 case 开始向下穿透
-> 直到遇到一个 break 为止
5. default 可以写也可以不写
-> 你要是写了 default 那么所有条件都不满足的时候就有代码执行
-> 你要是不写 default 那么所有条件都不满足的时候就没有代码执行
区别:
if 条件判断可以判断范围
当你需要范围判断的时候, 推荐使用 if 语句
switch 只能准确判断
当你需要准确判断, 并且判断的还比较多的时候, 推荐使用 switch
// 准备一个变量
var num = 1
// switch 语法
switch (num) {
case 1:
console.log(‘你输入的是 1 这个数字’)
break
case 2:
console.log(‘你输入的是 2 这个数字’)
break
case 3:
console.log(‘你输入的是 3 这个数字’)
break
default:
console.log(‘所有条件都不满足’)
}
console.log(‘后续代码继续执行’)
三元(三目)运算符
对 if … else 语句的简写, 只能简写 if … else 语句
语法: 条件判断 ? 条件成立就执行 : 条件不成立就执行
严格的语法规范, 两个符号, 分成三段
三元运算符的符号规则就是 ? 和 :
var age = 15
age >= 18 ? console.log(‘成年’) : console.log(‘未成年’)
循环语句
就是重复的坐某些事情
一段代码在重复的执行
重复执行多少遍, 由你来决定
三种循环语句
1. while 循环
2. do … while 循环
3. for 循环
循环的必要条件
4. 初始化变量
5. 条件判断
6. 要重复执行的代码
7. 自身改变(改变初始化变量的值)
while 循环
while -> 当 … 时
当 条件满足的时候, 就执行 {} 里面的代码
当 条件不满足的时候, 就结束, 不在循环了
语法: while (条件) { 要重复执行的代码 }
注意: 不要写死循环, 一定要有自身改变, 并且能根据条件执行出一个 false
1. 初始化变量
var n = 1
2. 条件判断
while (n < 5) {
3. 要重复执行的代码
console.log(‘我执行了一遍’)
4. 自身改变(改变初始化的变量)
n = n + 1
}
console.log(‘后续代码继续执行’)
while 循环小案例
在控制台输出 1 ~ 100 的和 5050
需要使用循环得到 1 ~ 100 的每一个数字
使用一个 while 循环, 从 1 开始, 到 100 结束
1. 初始化就为 1
var n = 1
准备一个变量接收计算的结果
第一次在他身上 + 1
第二次在他身上 + 2
第三次在他身上 + 3
第一百次在他身上 + 100
var sum = 0
2. 条件判断, 到 100 为止, 包含 100
while (n <= 100) {
3. 重复执行的代码
console.log(n)
每次把 n 的值叠加到 sum 变量身上
sum = sum + n // 简写成 sum += n
4. 自身改变
就是为了让自身 +1
有一个叫做 ++ 的运算符, 只要执行了, 必然会让自身的值 +1
你写 n++ 或者 ++n 都是可以的, 因为我们不是为了让他参与运算
只是为了改变 n 的值
n++
}
console.log(sum)
只有当 n === 101 的时候才会结束循环
现在这个位置是循环结束以后的位置, n 一定是 101
console.log(n)
++ 运算符
共同点:
不管前置 ++ 还是后置 ++ 都会改变自身的值(+1)
区别: 参与运算的时候
前置++ 时先把自身的值改变 用改变以后的值参与运算
后置++ 是直接把变量自身的值拿过来参与运算, 运算结束以后再改变自身的值
do … while 循环
和 while 循环基本一致
唯一的区别是语法上的区别, 导致不管条件是不是成立, 都先执行一次再说
语法: do { 要重复执行的代码 } while (条件判断)
初始化
var n = 10
do {
console.log(n)
n++
} while (n <= 3)
while (n <= 3) {
console.log(n)
n++
}
do while 循环小案例
出现一个输入框, 让用户输入内容
只要不符合我确定的内容, 那么就再次弹出
如果符合我输入的内容了, 那么就结束了
do {
var result = prompt(‘你爱不爱我 ?’)
} while (result !
‘yes’)
只要你写的不是 yes 就会再次弹出来
直到你写了 yes 就结束了
alert(‘我也爱你 ! _’)
for 循环语法
也是我们循环语法的一种
但是看起来不是很舒服, 但是用起来很好用
语法: for (初始化; 条件判断; 自身改变) { 重复执行的代码 }
for (var i = 0; i < 3; i++) { console.log(i) }
初始化 判断 自身改变
写 i++ 或者 ++i 是一样的, 我并不要 i 去参与运算, 只是为了改变 i 的值
for (var i = 0; i < 3; i++) {
重复执行的代码
console.log(i)
}
if (条件) { 代码块 }
if (条件) { 代码块 } else { 代码块 }
while (条件) { 代码块 }
do { 代码块 } while (条件)
for (初始化; 条件; 自增) { 代码块 }
使用 for 循环求 1 ~ 100 的和
需要利用 for 循环出现 1 ~ 100 的每一个数字
提前准备一个变量接收结果
var sum = 0
for (var i = 1; i <= 100; i++) {
console.log(i) // i 出现的就是 1 ~ 100 的每一个数字
再循环里面把每一个数字叠加起来
sum += i
}
for 循环小案例
再控制台输出 1 ~ 100 之间所有的 3 的倍数
1. 要有一个循环, 能得到 1 ~ 100 之间所有的数字
2. 再循环里面进行判断
=> 如果是 3 的倍数就再控制台输出
=> 如果不是 3 的倍数, 那么就什么也不做
for (var i = 1; i <= 100; i++) {
console.log(i) // i 得到的就是 1 ~ 100 之间的所有数字
判断, 这个数字是不是 3 的倍数
if (i % 3 === 0) {
表示循环的本次 i 能倍 3 整除, 就要输出一下
console.log(i)
}
}
寻找水仙花数字 - 三次自幂数
前提: 是一个三位数字
当数字的每一位数字的三次方之和, 刚好和这个数字一样
我们就叫这个数字位水仙花数字, 三次自幂数
例子: 123
1 2 3
如果 1 * 1 * 1 + 2 * 2 * 2 + 3 * 3 * 3
刚好得到 123 那么就是水仙花数字
如果得不到 123 就不是水仙花数字
寻找 100 ~ 999 之间的所有的水仙花数字
需要一个循环, 得到 100 ~ 999 之间的所有数字
1. 得到 100 ~ 999 之间的所有数字
for (var i = 100; i <= 999; i++) {
console.log(i) // i 得到的就是 100 ~ 999 之间的所有数字
2. 把每一个数字拆开
拆开的是循环中的每一个数字, 所以一定要写在里面
var a = parseInt(i / 100)
var b = parseInt(i % 100 / 10)
var c = i % 10
3. 判断三个数字的三次方之和 是不是 和这个数字一样
if (a3 + b3 + c**3 === i) {
表示三个数字的三次方之和刚好和这个数字一样
console.log(i + ’ 是水仙花数字’)
}
console.log(i, a, b, c)
}
拆开数字
var n = 345
为了得到 百位数字
n / 100 得到 3.45, 然后取整一下 得到的就是 3
var a = parseInt(n / 100)
console.log(a)
为了得到 十位数字
n % 100 得到 45, 然后用 45 / 10 得到 4.5 再进行取整 得到 4
var b = parseInt(n % 100 / 10)
console.log(b)
小案例 - 再 页面上 输出 1000 ~ 2000 之间所有的闰年
1. 循环要得到 1000 ~ 2000 之间所有的数字
2. 判断每一个数字是不是闰年
-> 是闰年的输出再页面上
-> 如果不是如年就算了
输出再页面上的方法之一
document.write(你要输出的内容)
document 文档 页面
write 写 写入
1. 循环找到 1000 ~ 2000 之间的所有数字
for (var i = 1000; i <= 2000; i++) {
console.log(i) // i 得到的就是 1000 ~ 2000 之间的所有数字
2. 先判断是不是闰年
if (i % 4 === 0 && i % 100 !== 0 || i % 400 === 0) {
表示是闰年
3. 把闰年的数字输出再页面上
标签 js 不认识, 但是我把它当作文本写入 页面的时候
浏览器就认识 这个标签了, 就会被解析为换行使用
document.write(i + ‘’)
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值