SOURCE



// ask: 最后一次  console.log(i) 值是多少?为什么?
// let i = 10
// while (i <= 10) {
//     console.log(i)
//     i--
//     if (i === 8) break
// }
// console.log('breake 跳出循环')

// ask: 对于每次循环,写出你认为会显示的值;以下两个循环的 console 值是否相同
// let i = 0;
// while (++i < 5) console.log(i) // 前置,返回自增后的值
// res: 1,2,3,4

// let i = 0;
// while (i++ < 5) console.log(i) // 后置,返回自增前的值
// i++ 返回值:0,1,2,3,4
// res: 0,1,2,3,4(x)
// 正确的res: 1,2,3,4,5
// 分析:console.log(i) 是在每次自增之后才执行的语句,所以,拿到的是当前已经更新后的i值


// ask: 对于每次循环,写出你认为会显示的值;以下两个循环的 console 值是否相同
// 两中情况输出结果都是一样的,这里并没有使用到 ++i 和 i-- 的返回值,所以每次循环++i和i++都是让i加一
// for (let i = 0; i < 5; i++) console.log( i );
// res: 0,1,2,3,4

// for (let i = 0; i < 5; ++i) console.log( i );
// res: 0,1,2,3,4

// ask: 使用for循环输出偶数
const fn = (n) => {
    let res = []
    // for (let i = 0; i <= n; i++) {
    //     if (i % 2 === 0 && i !== 0) console.log(i)

    // }

    // for (let i = n; i > 0; i--) {

    //     if (i % 2 === 0) res.unshift(i)
    // }

    let i = 0
    while (++i) {
        if (i % 2 === 1) continue
        if (i > n) break
        res.push(i)

    }

    return res
}

// console.log(fn(10)) 

// ask: 重写代码,在保证不改变其行为的情况下,将 for 循环更改为 while
const taskFn2 = () => {
    // for (let i = 0; i < 3; i++) {
    //     console.log(`number ${i}!`);
    // }

    let i = 0
    while (i < 3) {
        console.log(`number ${i++}!`);
    }
}
// taskFn2()

// ask: 循环一直在请求一个数字,直到用户输入了一个大于 100 的数字、取消输入或输入了一个空行为止
const taskFn3 = () => {
    let number = 0
    while (number <= 100 && number != null) {
        number = prompt('Please enter a number greater than 100: ')
    }

    // do {
    //     number = prompt("Enter a number greater than 100?", 0);
    // } while (number <= 100 && number)

    console.log('取消输入')
}
// taskFn3()

// ask: 输入任意数字n,输出 2 到 n 之间的所有 素数(质数)。
// 素数:是指大于1,且只能被1和它本身整除的数字
const taskFn4 = (n) => {
    let res = []


    // 遍历1到n区间内所有数字i,
    // 在区间(1,i)之间只要找到一个i的除数,说明这个数字i不是素数;反之他是素数
    nextPrime: for (let i = 2; i <= n; i++) {
        for (let j = 2; j < i; j++) {
            if (i % j === 0) continue nextPrime;// i is not prime
        }
        res.push(i)
    }
    return res

}
// console.log(taskFn4(10))
console 命令行工具 X clear

                    
>
console