循环
在实际问题中,有许多具有规律性的重复操作,
因此在程序中要完成这类操作就需要重复执行某些语询φ(* ̄0 ̄)
js中一共有三种主要类型的循环 但这次我们只说一个 for循环。
for循环
在程序中, - -组被重复执行的语句被称之为循环体,
能否继续重复执行,取决于循环的终止条件。由循环体
及循环的终止条件组成的语句,被称之为循环语句
for循环主要用于把某些代码循环若干次,通常跟计数有关系。
语法:
for (初始化变量;条件表达式;操作表达式){
//循环体
}
初始化变量:就是用var 声明的一个普通变量,当作于计数器使用
条件表达式:就是用来决定每一次循环是否居胥执行 就是终止条件
操作表达式:是每次循环最后的执行代码 经常用于我们计数器变量进行
更新(递增递减)
for循环 执行过程
首先执行里面的计数器变量var i = 1 .
但是这句话在for里面只执行一次index
去i <= 100来判断是否满足条件, 如果满足条件
就去执行循环体不满足条件退出循环
最后去执行i++ i++是单独写的代码递增第一 轮结束
接着去执行i<=100如果满足条件就去执行循环体
不满足条件退出循环第二轮
断点调试:
断点调试是指自己在程序的某一行设置-一个断点 ,
调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试
过程中可以看各个变星当前的值,出错的话,调试到出错的代码行的显示错误,停下。
断点调试可以帮我们观察程序的运行过程
浏览器中按F12–> sources -->找到需要调试的文件–>在程序的某一行设置断点
Watch:监视,通过watch可以监视变量的值的变化,非常的常用。
F11:程序单步执行,让程序- -行-行的执行,这个时候,观察watch中变量的值的变化。
代码调试的能力非常重要,只有学会了代码调试,才能学会自己解决bug的能力。
初学者不要觉得调试代码麻烦就不去调试,
知识点花点功夫肯定学的会,但是代码调试这个东西,自己不去练,永远都学不会。
for循环例子
制作一个网页 打开弹出 输入学生总数
之后有多少学生 就弹出几次收集成绩的弹窗
收集完成后 打印出 所有学生的总分 和平均分
//定义需要使用的变量
var num = prompt('请输入学生人数');
var sum = 0 ;
var aver =0 ;
for (i= 1;i<=num ;i++ ){
var sc = prompt('请输入第'+i+'个学生的成绩')
//将sc 转化为数字类型数据
sum = sum + parseFloat(sc) ;
}
aver = sum / num;
alert('班级总分是'+sum)
alert('平均分'+aver)
利用for循环 弹出和学生总数一样数量的弹窗
再用 运算 计算出总成绩
注意!!
要把变量sc 变为数字类型 否则会出现错误
最后算出平均成绩
把成绩打印出来
例子2 打印心
用户输入心数量
在控制台打印出用户指定数量的心
var num = prompt('请输入要打印的星星数量');
//定义一个空的字符串 用于拼接
var str = '';
//利用for循环
for (i=1; i<=num; i++){
str =str +'💗';
}
console.log(str);
双重for循环
1.双重for循环语法结构
for (外层的初始化变量;外层的条件表达式;外层的操作表达式) {
执行语句;
for (里层的初始化变量;里层的条件表达式;里层的操作表达式) {
// 执行语句;
}
}
2.我们可以把里面的循环看做是外层循环的语句
3.外层循环循环一次,里面的循环执行全部
例子 还是打印心
1.打印出 用户指定数量的心
2.打印出 用户指定数量的行
var num2 = prompt('请输入每一行要打印的星星数量');
var num = prompt('请输入要打印多少列');
//定义一个空的字符 用于拼接
var str = '';
//利用for循环
for (i=1; i<=num; i++){
for(j=1;j<=num2;j++){
str =str +'💗';
}
//内层打印完心之后 换行
str=str+ '\n' ;
}
console.log(str);
输入5个心 3列
例子3
打印心 再次升级版
要求每次打印出的心比上一列少一个
var num2 = prompt('请输入第一行要打印的星星数量');
var num = prompt('请输入要打印多少列');
//定义一个空的字符 用于拼接
var str = '';
//利用for循环
for (i=1; i<=num; i++){
for(j=i;j<=num2;j++){
str =str +'💗';
}
//内层打印完心之后 换行
str=str+ '\n' ;
}
console.log(str);
这里我们让 j = i 也就是说 每次循环 i加一 j也加一 等于j 减一
假如输入的是 10 颗心 打印两行
那就等于
每循环一次 i 和 j 加一
循环到第二次 j 就变为了2 一开始我们是打印10颗心
但现在就等于 j 变为了2 从2 开始到10
所以每次都会比上面少一颗心
打印九九乘法口诀表
var str = ''
for (i=1; i<=9; i++){
for(j=1;j<=i;j++){
//第一行第一列 打印的是 1*1 到了第二行第一列就变成 1 2 第二行第二列 2*2 以此类推
str += j + 'x'+ i + '=' + i* j +'\t' ;
}
//内层打印完心之后 换行
str +='\n';
}
console.log(str);
for循环总结
for循环可以重复执行某些相同代码
随着需求增加,双重for循环可以做更多、更好看的效果
双重for循环,外层循环一次,内层for循环全部执行
for循环是循环条件和数字直接相关的循环
分析要比写代码更重要
只有分析出来代码执行的过程 我们才能写出来
一些核心算法想不到,但是要学会,分析它执行过程