JavaScript基础第三章(循环)

1、for循环

在程序中,一组被重复执行的语句被称之为循环体,能否继续重复执行,取决于循环的终止条件。由循环体及循环的终止条件组成的语句,被称之为循环语句

for(初始化变量;条件表达式;操作表达式)
{
   //循环体
}

1. 输入10句"for循环!"  

//基本写法
for(let i = 1; i<=10; i++  )
    {
         console.log('for循环');
    }
// 用户输入次数
let num = prompt('请输入次数:');
for(let i = 1; i<= num ;i++)
    {
        console.log('for循环');
    }

2. 求1-100之间所有整数的累加和

// 求1-100所以的整数和
let sum = 0;
for (let i = 1; i <= 100; i++) {
    let sum = sum + i;
}
console.log(sum);

3. 求1-100之间所有数的平均值

// 3.求1-100之间所有数的平均值
let sum = 0;
for (let i = 1; i <= 100; i++) {
    let sum = sum + i;
}
console.log(sum / 100);

4. 求1-100之间所有偶数和奇数的和

// 4.求1-100之间所有偶数和奇数的和
let sum1 = 0;
let sum2 = 0;
for (let i = 1; i <= 100; i++) {
    if (i % 2 == 0) {
        sum1 = sum1 + i;
    } else {
        sum2 = sum2 + i;
    }
}
console.log('偶数和为' + sum1);
console.log('奇数和为' + sum2);

5. 求1-100之间所有能被3整除的数字的和

// 5.求1-100之间所有能被3整除的数字的和
let sum = 0;
for (let i = 1; i <= 100; i++) {
    if (i % 3 == 0) {
        sum += i;
    }
}
console.log(sum);

6. 要求用户输入班级人数,之后依次输入每个学生的成绩,最后打印出该班级总的成绩以及平均成绩。

let num = prompt('请输入班级总的人数:'); // num 班级总的人数
let sum = 0; // 总成绩
let average = 0; // 平均成绩
for (let i = 1; i <= num; i++) {
     let score = prompt('请输入第' + i + '个学生的成绩');
    //这里接收的是str,必须转换为数值
     sum = sum + parseFloat(score);         
}
average = sum / num;
alert('班级总的成绩是:' + sum);
alert('班级总的平均成绩是:' + average);

7. 一行打印5个星星

我们采取追加字符串的方式,这样可以打印到控制台上

let star = '';
for (let i = 1; i <= 5; i++) {
     star += '☆';
 }
console.log(star);

2、双重for循环

循环嵌套是指在一个循环语句中再定义一个循环语句的语法结构,例如在for循环语句中,可以再嵌套一个for 循环,这样的 for 循环语句我们称之为双重for循环。

for(外循环的初始;外循环的条件;外形循环的操作表达式){
    for(内循环的初始;内循环的条件;内循环的操作表达式){
        需执行的代码;
    }
}
  • 内层循环可以看做外层循环的语句
  • 内层循环执行的顺序也要遵循 for 循环的执行顺序
  • 外层循环执行一次,内层循环要执行全部次数

1. 打印五行五列星星
核心:

  • 内层循环负责一行打印五个星星
  • 外层循环负责打印五行
let star = '';
for(let j = 1;j<=5;j++)
{
   for (let i = 1; i <= 5; i++)
   {
     star += '☆'
   }
    //每次满5个星星就加一次换行
    star +='\n'  
}
console.log(star);

2. 打印n行n列的星星
要求用户输入行数和列数,之后在控制台打印出用户输入行数和列数的星星

let star = '';
let row = prompt('请输入行数');
let col = prompt('请输入列数');
for (let j = 1; j <= col; j++) {
    for (let i = 1; i <= row; i++) {
        star += '☆';
    }
    star += '\n';
}
console.log(star);

3. 打印倒三角形

  • 一共有10行,但是每行的星星个数不一样,因此需要用到双重 for 循环
  • 外层的 for 控制行数 i ,循环10次可以打印10行
  • 内层的 for 控制每行的星星个数 j
  • 核心算法: 每一行星星的个数: j = i ; j <= 10; j++
  • 每行打印完毕后,都需要重新换一行
let star = '';
let row = prompt('请输入行数');
let col = prompt('请输入列数');
for (let i = 1; i <= row; i++) {
    for (let j = i; j <= col; j++) {
        star += '☆';
    }
    star += '\n';
}
console.log(star);

3、while循环

while(条件表达式){
  //循环体代码
}

执行思路:

  • 先执行条件表达式,如果结果为 true,则执行循环体代码;如果为 false,则退出循环,执行后面代码
  • 执行循环体代码
  • 循环体代码执行完毕后,程序会继续判断执行条件表达式,如条件仍为true,则会继续执行循环体,直到循环条件为 false 时,整个循环过程才会结束

注意:

  • 使用 while 循环时一定要注意,它必须要有退出条件,否则会称为死循环
  • while 循环和 for 循环的不同之处在于 while 循环可以做较为复杂的条件判断,比如判断用户名和密码

1. 打印人的一生
从1岁到99岁

let age = 0;
while (age <= 100) {
    age++;
    console.log('您今年' + age + '岁了');
}

2. 计算 1 ~ 100 之间所有整数的和

let figure = 1;
let sum = 0;
while (figure <= 100) {
    sum += figure;
    figure++;
}
console.log('1-100的整数和为' + sum);

4、do while循环

do {
  //循环体代码-条件表达式为true的时候重复执行循环一代码
}while(条件表达式);

执行思路:

  • 先执行一次循环体代码
  • 再执行表达式,如果结果为true,则继续执行循环体代码,如果为false,则退出循环,继续执行后面的代码
  • 先执行再判断循环体,所以dowhile循环语句至少会执行一次循环体代码

需求:弹出一个提示框, 你爱我吗? 如果输入我爱你,就提示结束,否则,一直询问

do {
    let love = prompt('你爱我吗?');
} while (love != '我爱你');
    alert('登录成功');

5、continue 关键字

continue 关键字用于立即跳出本次循环,继续下一次循环(本次循环体中 continue 之后的代码就会少执行一次)。

例如,吃5个包子,第3个有虫子,就扔掉第3个,继续吃第4个第5个包子

for (let i = 1; i <= 5; i++) {
 if (i == 3) {
     console.log('这个包子有虫子,扔掉');
     continue; // 跳出本次循环,跳出的是第3次循环 
  }
  console.log('我正在吃第' + i + '个包子呢');
}

6、break关键字

break 关键字用于立即跳出整个循环

例如,吃5个包子,吃到第3个发现里面有半个虫子,其余的也不吃了

for (let i = 1; i <= 5; i++) {
   if (i == 3) {
       break; // 直接退出整个for 循环,跳到整个for下面的语句
   }
   console.log('我正在吃第' + i + '个包子呢');
 }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值