JavaScript学习笔记—循环

时间:2023-01-13
本文章向大家介绍JavaScript学习笔记—循环,主要内容包括1. while循环、2. do...while循环、3. for循环、使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

JS三种循环语句

  • while语句
  • do-while语句
  • for语句

通常编写一个循环,需要有三个条件:
(1)初始化表达式
(2)条件表达式
(3)更新表达式

1. while循环

  • 语法
while (condition) {
  // 代码
  // 所谓的“循环体”
}

当 condition 为真时,执行循环体的 code。

  • 示例
let i = 0;
while (i < 3) { // 依次显示 0、1 和 2
  alert( i );
  i++;
}

let ii = 3;
while(ii) { // 当 ii 变成 0 时,条件为假,循环终止
  console.log(ii);
  ii--;
}
  • 练习
// 假设银行存款的年利率为5%,问1000元存多少年可以变成5000元?
let money = 1000;
let year = 0;
while(money < 5000){
  money = money * 1.05;
  year++;
}
console.log(`需要存${year}年,最终的钱数为${money}元`);

2. do...while循环

  • 语法
do {
  // 循环体
} while (condition);

循环首先执行循环体,然后检查条件,当条件为真时,重复执行循环体。

  • 示例
let i = 0;
do {
  console.log(i);
  i++;
} while (i < 3);

这种形式的语法很少使用,除非你希望不管条件是否为真,循环体 至少执行一次。通常我们更倾向于使用另一个形式:while(…) {…}。

3. for循环

  • 语法
// 初始化表达式; 条件表达式; 更新表达式
for (begin; condition; step) {
  // ……循环体……
}
  • 示例
// 结果为 0、1、2
for (let i = 0; i < 3; i++) {
  console.log(i);
}
  • 练习
// 1. 求100以内所有3的备注(求他们的个数和总和)
let count = 0; // 计数器
let result = 0; // 计算结果
for(let i = 1; i <= 100; i++){
  // 3的倍数
  if(i % 3 === 0){
    count++;
    result = result + i;
  }
}
console.log(`100以内3的倍数一共有${count}个,总和为${result}`);
//============================================================
// 优化后的方法
for(let i = 3; i <= 100; i+=3){
  count++;
  result += i;
}
console.log(`100以内3的倍数一共有${count}个,总和为${result}`);

/*
 2. 求1000以内的水仙花数
    水仙花数:一个n位数(n >= 3),如果它各个位上数字的n次幂之和还等于这个数,那么此数即为水仙花数
    例:153 --> 1 5 3 --> 1 125 27 --> 153
*/
for(let i = 100; i < 1000; i++){
  // 取百位数 parseInt(153 / 100) --> 1
  let bai = parseInt(i / 100);
  // 取十位数 parseInt((153 - 1 * 100) / 10) --> 5
  let shi = parseInt((i - bai * 100) / 10);
  // 取个位数 153 % 10 --> 3
  let ge = i % 10;
  // 判断是否水仙花数
  if(bai**3 + shi**3 + ge**3 === i){
    console.log(i);
  }
}
// 优化后的方法,主要用字符串的特性 let str = "123" 显示每位数:str[0] str[1] str[2]
for(let i = 100; i < 1000; i++){
  let strI = i + "";
  if(strI[0]**3 + strI[1]**3 + strI[2]**3 === i){
    console.log(i);
  }
}
/*
3. 获取用户输入的大于1的整数(暂不考虑输错的情况),如果是质数打印结果
   质数:一个数如果只能被1和它本身整除,即为质数
   1不是质数也不是合数
*/
let num = +prompt("请输入一个大于1的整数:");
let flag = true;
for(let i=2; i<num; i++){
  if(num % i === 0){
    flag = false;
    break;
  }
}
if(flag){
  alert(`${num}是质数`);
}else{
  alert(`${num}不是质数`);
}

原文地址:https://www.cnblogs.com/zibocoder/p/17048111.html