这次主要是总结一下,在我们学习循环结构时,我个人在学习上遇到的问题,以及遇到的重难点。
一、首先,我们需要明白,什么是循环,循环结构是用来干什么的?
- 循环:其实就是当满足一定条件时,能够重复不断执行一组代码,不满足条件时,循环会被打破或终止!
例如:我们生活中的打肉机,在通电的情况下,就可以把肉打成肉馅。
我们分析这段话,可以得到一个条件,就是在 通电的情况下,它才能够工作。
打肉机循环重复的一个操作就是 不断的/重复的旋转把肉打成肉馅。 - 循环结构主要是用来处理我们遇到的 重复性/多次性的运算、判定的业务!
二、我们在学习循环结构时,会遇到的三种循环语法(知识点)
1. while:
while(循环条件){
循环操作/循环体(在循环中被重复执行的操作)
}
2. do-while:
do{
循环结构
}while(循环条件);
注意点: 在while() 后面的分号一定不可忘
特点:先循环,再判断。就是先进行一次循环,再去判断是否满足循环条件,若满足,继续下一次循环,否则,结束循环。
do-while 和 while 的区别:do-while 是先循环,再判断。while 是先判断,再循环。
3. for:
for(初始变量;循环条件;修改变量){
循环操作
}
执行顺寻:初始变量=>循环条件=>循环操作=>修改变量(加粗部分会重复执行,知道不满足循环条件才会终止)
(1)for与while的运用
for一般用于知道其循环次数,而while一般用于是否满足某一条件的循环
(2)back和continue
back:中断,结束本层循环 退出循环 back只能出现在switch语句和循环体中
continue:跳过本次循环,继续下一次循环。
(3)举三个相对经典的例子:
- 水仙花数: 1个三位数的每一个位数的立方和 等于它自己 这样的数字叫做水仙花数
例如:153 = 1 * 1 *1 + 5 *5 *5 + 3 * 3 * 3 = 153
for (var i = 100; i <= 999; i++) {
// 挨个判定每一个数是否是水仙花数
// 先获取个位数 对10求余
var ge = i % 10;
// 再获取十位数
var shi = parseInt(i % 100 / 10);
// 再获取百位数
var bai = parseInt(i / 100);
// console.log(i + "这个数字的百位数是" + bai + "十位数是" + shi + "个位数是" + ge);
if (ge * ge * ge + shi * shi * shi + bai * bai * bai === i) {
console.log(i + "是一个水仙花数");
}
}
- 使用for循环打印九九乘法表 (空格: )
for(var i=1;i<10;i++)
{
for(var k=1;k<=i;k++)
{
// document.write(i+"*"+k+"="+i*k)
// document.write(i+"*"+k+"="+i*k+"  ");
document.write(i+"*"+k+"="+(i*k<10?i*k+" ":i*k+" "));
}
document.write("<br>");
}
- 使用for循环打印菱形
// 思路:打印两个上下对称的三角形组成菱形
var h=21;//设置菱形的高度
for(var i=0;i<h;i++)
{
if(i<parseInt(h/2)+1)//定义i为行数 i从0开始
{
for(var k=h-i-3;k>0;k--)//定义k为每一行第一个*前-的数量
{
document.write("-");
}
for(var k=0;k<2*i+1;k++)//定义k为每一行*的数量
{
document.write("*");
}
document.write("<br>");//换行
}
else{
for(var k=0;k<i-2;k++)//定义k为每一行第一个*前-的数量
{
document.write("-");
}
for(var k=0;k<2*h-(2*i+1);k++)//定义k为每一行*的数量
{
document.write("*");
}
document.write("<br>");//换行
}
}
初步发布文章,有什么不好不对的地方欢迎大家评论区指出,尽可能帮助需要帮助的人~如有侵权,请联系删除!