01-练习
华氏度转摄氏度(保留三位小数)
var c = (80 - 32) * 5 / 9
console.log(c.toFixed(3))
console.log(parseInt(c * 1000) / 1000)
每个月第几天是每年的第几天
var year = 2024
var month = 2
var day = 20
结果:42
switch (month) {
case 12:
day += 30
case 11:
day += 31
case 10:
day += 30
case 9:
day += 31
case 8:
day += 31
case 7:
day += 30
case 6:
day += 31
case 5:
day += 30
case 4:
day += 31
case 3:
if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
day += 29
} else {
day += 28
}
case 2:
day += 31
}
console.log(day)
02-循环
while
- 循环:重复的做一件
- 不固定次数使用
死循环会阻止后面的程序执行
while (1 < 3) {
alert('ok')
}
alert(123)
1. 初始化
var i = 0 // 1 2 3
2. 条件
while (i < 3) {
3. 语句
alert(i) // 0 1 2
4. 自增
i++
}
例子
var str = prompt('你爱我吗?')
while (str !== 'yes') {
str = prompt('你爱我吗?')
}
alert('我也爱你')
03-doWhile循环
条件不成立也会执行一次
var i = 0
alert(i)
do {
alert(i)
i++
} while (i > 3)
04-for循环
写法
for
- for (初始化;条件;自增) { 语句 }
- 执行顺序:1. 初始化;2. 条件;3. 语句; 4. 自增
- 语法糖
例子
自增到5
for (var i = 0; i < 5; i++) {
console.log(i) 0 1 2 3 4
}
循环结束以后i已经变成了5
console.log(i)
0-100之间的数 只输出偶数 求偶数和
var sum = 0
for (var i = 0; i <= 100; i += 2) {
// console.log(i)
sum += i
}
console.log(sum)
for (var i = 0; i <= 100; i++) {
if (i % 2 === 0) {
console.log(i)
}
}
1-7之间的阶乘
1 - 7 之间的阶乘
1 * 2 * 3 * 4 * 5 * 6 * 7
var n = 1
for (var i = 1; i <= 7; i++) {
console.log(i)
n *= i
}
console.log(n)
05-求质数 计数器
质数
- 什么是质数
- 质数:3 5 7 11 13
- 非质数:4 6 8 9
var n = 9
计数器
var count = 0
for (var i = 2; i < n; i++) {
// console.log(n % i)
if (n % i === 0) {
count++
}
}
if (count === 0) {
alert('是')
} else {
alert('不是')
}
05-求质数2
var n = 5
// 计数器
var count = 0
// 只有循环结束才能知道这个数是不是质数
for (var i = 2; i < n; i++) {
if (n % i === 0) {
count++
}
}
if (count === 0) {
alert('是')
} else {
alert('不是')
}
05-求质数3
var n = 5
// 开关
var flag = true
for (var i = 2; i < n; i++) {
if (n % i === 0) {
// 如果能进入本次条件下面的语句就不能执行
flag = false
alert('不是质数')
}
}
// false
if (flag) {
alert('是质数')
}
06-输出闰年
1000 - 2000 之间的闰年
var count = 0
for (var i = 1000; i <= 2000; i++) {
if (i % 4 === 0 && i % 100 !== 0 || i % 400 === 0) {
// 到闰年就让计数自增
count++
document.write(i + ' ')
// console.log(count)
// 如果count是4的倍数就要多打印一个换行
if (count % 4 === 0) {
document.write('<br />')
}
}
}
07-水仙花数
153
- 1 * 1 * 1 = 1
- 5 * 5 * 5 = 125
- 3 * 3 * 3 = 27
1 + 125 + 27 = 153
把三个数拆成个位数,每个数的3次幂结果相加还是原来的数就为水仙花数
三位数里有哪些水仙花数
var n = 153
var a = parseInt(n / 100)
var b = parseInt(n / 10) % 10
var c = n % 10
var res = a * a * a + b * b * b + c * c * c
// console.log(a, b, c)
// console.log(res, n)
if (res === n) {
alert('是水仙花数')
} else {
alert('不是水仙花数')
}
07-水仙花数2
三位数里有哪些水仙花数
for (var i = 100; i <= 999; i++) {
var a = parseInt(i / 100)
var b = parseInt(i / 10) % 10
var c = i % 10
// var res = a * a * a + b * b * b + c * c * c
var res = Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3)
if (res === i) {
console.log(res)
}
}
08-双层循环嵌套
双层循环变量名不能重复
结束值 * 结束值 = 循环次数
for (var i = 0; i < 5; i++) {
for (var j = 0; j < 5; j++) {
console.log(j)
}
}
for (var j = 1; j <= 10; j++) {
for (var i = 0; i < j; i++) {
document.write('*')
}
document.write('<br />')
}
09-99乘法表
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
document.write(j + '*' + i + '=' + i * j + ' ')
}
document.write('<br />')
}
10-等腰三角形
var n = 10
for (var k = 0; k <= n; k++) {
for (var i = 0; i < n - k; i++) {
document.write(' ')
}
for (var j = 0; j < k * 2 + 1; j++) {
document.write('*')
}
document.write('<br />')
}
11-结束循环
结束循环,break
for (var i = 0; i < 100; i++) {
if (i === 3) {
break
}
console.log(i)
}
12.跳过本次循环
跳过循环 continue
for (var i = 0; i < 10; i++) {
if (i === 3) {
continue
}
console.log(i)
}