for 循环
循环的主要目的:可以重复执行某些代码或者语句,for循环 重复执行某些代码,通常跟计数有关系。
for 语法结构:
for(初始化变量;条件表达式;操作表达式){
循环体
}
初始化变量:就是var声明的一个普通变量,通常用于作为计数器使用
条件表达式:就是用来决定每一次循环是否继续执行,就是终止的条件
操作表达式 是每一次循环执行的代码,经常用于我们计数器变量进行更新(递增或者递减)后置自增多次使用。
// 我们重复打印100句你好
for(var i =1 ; i<=100 ; i++){
document.write('你好');
console.log('你好');
}
循环执行的过程:
1.首先执行里面的计数器变量,但是这句话在for里面只执行一次
2.去i<=100来判断是否满足条件,如果满足条件,就去执行循环体,不满足条件就退出循环
3.最后执行i++ i++是单独写的代码,他是递增 第一轮结束
4.接着去执行i<=100 如果满足条件,就去执行循环体,不满足条件就退出循环,依次类推
5.当i=101 时,不满足i<=100,跳出循环,循环结束。
我们想要查看代码的运行过程可以通过断点调试来进行查看:
断点调试:可以查看循环的运行顺序。在浏览器中点击源代码,点击进入下一个函数调用,可以查看程序的运行或者点击右侧的在右侧Watch ,里面输入i,可以查看循环的变化。
以下是for循环的一点小例子(以下代码都可以运行,由于第二个打印过多,我只截图了第一个和第三个程序结果。
// 我们可以让用户控制输出的次数,可以执行相同的代码。
var num=prompt('请用户输入次数')
for (var i=1 ;i<=num; i++){
console.log('坚哥无敌')
}
// 我们要输出1个人1~100岁
for(var i=1 ; i<=100 ; i++){
console.log('这个人今年'+i+'岁')
}
for(var i=1; i<=100 ; i++){
if(i==1){
console.log('他出生了')
}else if(i==100){
console.log('他死了')
}else{
console.log('这个人今年'+i+'岁')
}
}
// 课堂案例:求1-100之间所有整数的累加和
var sum=0;
for(var i=1;i<=100;i++){
sum=sum+i;
// sum+=i;
}
console.log('整数和为'+sum)
for循环的案例,仅供大家参考:
// 1.求1-100之间所有数的平均值 需要一个sum 和的变量 和一个average 平均值的变量
var sum=0;
var aversge=0;
for(var i=1;i<=100;i++){
sum=sum+i;
// sum+=i;
}
average=sum/100
console.log(average)
// 4.求学生成绩,弹出输入框,用户输入班级人数,然后弹出几个输入框输入分数,然后算出总分和平均分
var num=prompt('请输入班级的总人数');
// num是班级总的人数
var sum=0;
// 求和的变量
var average=0;
// 求平均值的变量
for (var i=1;i<=num;i++){
var score=prompt('请输入第'+i+'个学生成绩');
// prompt取过来的数值是字符串类型的,需要转化为数值型
sum=sum+parseFloat(score);
}
average=sum/num;
alert('班级的总分谁'+sum);
alert('班级的平均分'+average);
双重for循环
双重for循环(循环的嵌套使用),嵌套循环是指在一个循环语句中再定义一个循环语句的语法结构。
语法结构:
for(外层的初始化变量;外层的条件表达式;外层的操作表达式){
for(里层的初始化变量;里层的条件表达式;里层的操作表达式){
执行语句
}
}
for (var i =1;i<=3;i++){
console.log('这是外层的循环第'+i+'次');
for (var j=1;j<=3;j++){
console.log('这是里层的循环第'+j+'次');
}
}
循环执行过程:外面执行一次,里面全部执行,然后外面执行第二次,里面还是全部执行。依次类推,外层跳出循环,内层也就不执行循环
双重for循环的小例子,仅供参考:
// 打印五行五列的星星
var str = '';
for(var i=1;i<=5; i++){
// 外层循环负责打印五行
for(var j=1;j<=5; j++){
str=str+'⭐';
}
// 如果一行打印完毕五个⭐就要重新启动一行 加\n
str=str+'\n';
}
console.log(str);
// 打印n行n列的星星
var rows=prompt('请你输入行数:');
var cols=prompt('请你输入列数:');
var str = '';
for(var i=1;i<=rows; i++){
// 外层循环负责打印用户输入的行数
for(var j=1;j<=cols; j++){
// 内层循环负责打印用户输入的列数
str=str+'⭐';
}
// 如果一行打印完毕五个⭐就要重新启动一行 加\n
// str=str+'\n';
str += '\n'
}
console.log(str);
双重for循环的案例:
// 打印九九乘法表
// 行数和列数相等,直接让 j<=i
var str='';
for(var i=1;i<=9;i++){
// 外层循环控制的是行数
for(var j=1;j<=i;j++){
// 里层的循环控制每一行的个数
str += j +'❌'+ i + '='+ i * j + '\t'+'\t'
}
str +='\n'
}
console.log(str);
// 打印倒三角的案例
// 核心算法:里层循环:j=i ;j<=10;j++
var str='';
for(var i=1 ; i<=10 ; i++){
for(var j=i ; j<=10 ; j++){
// 里层循环的打印个数不一样,直接j=i
str=str+'⭐'
}
str+='\n';
}
console.log(str);
// 打印顺三角案例
var str='';
for(var i=1;i<=10;i++){
// 外层循环控制的是行数
for(var j=1;j<=i;j++){
// 里层的循环控制每一行的个数
str=str+'⭐'
}
str+='\n'
}
console.log(str);
while 和 do while
while循环语法结构
while(条件表达式){
// 循环体
}
小案例:
var num=1;
while(num<=5){
document.write('刘哥,牛哇');
num++;
}
// 1.打印人的一生,从1-100岁
var i=1;
while(i<=100){
console.log('这个人今年'+i+'岁了');
i++;
}
// 2.计算1-100之间所有整数的和
var sum=0;
var j=1;
while(j<=100){
sum+=j;
j++
}
console.log(sum)
(可以发给你心爱的朋友小试一下):
// 3.弹出一个提示框,你爱我吗? 如果输入我爱你,就提示结束,否则,一直询问。
var message= prompt('你爱我吗?');
while(message!=='我爱你'){
message=prompt('你爱我吗?');
}
alert('我也爱你');
// do while 循环结构
do{
// 循环体
} while(条件表达式)
小案例:
var i =1;
do{
console.log('how are you');
i++;
} while (i<=100);
// 1.打印人的一生,从1-100岁
vari=1 ;
do{
console.log('这个人今年'+i+'岁了');
i++;
} while(i<=100);
// 2.计算1-100之间所有整数的和
var sum =0;
var j= 1;
do{
sum+=j;
j++
} while(j<=100)
console.log(sum);
// 3.弹出一个提示框,你爱我吗? 如果输入我爱你,就提示结束,否则,一直询问。
do{
var message =prompt('你爱我吗?');
}while (message !=='我爱你');
alert('我也爱你');
输出的结果和上面一样,这里就不在显示了。
continue关键字
跳过当前次的循环 继续执行剩余的次数循环
// 早上吃包子,跳过第三个
for (var i = 1 ;i <= 5 ; i++){
if(i == 3){
continue;
// 只要遇见 continue 就退出本次循环 直接跳到i++
}
console.log('我正在吃第'+i+'个包子');
}
// 1.求1-100之间,除了能被7整除之外的整数和
var sum = 0;
for (var i = 1 ; i <= 100 ; i++){
if(i % 7 == 0){
continue;
}
sum+=i;
}
console.log(sum);
break 关键字
退出整个循环,让循环直接结束
for (var i = 1 ;i <= 5 ;i++){
if(i == 3){
break;
}
console.log('我正在吃第'+i+'个包子');
}
下一篇文章会对循环进行案例的补充,以及对新的知识点进行补充,希望大家可以共同学习,共同进步,加油,各位兄弟姐妹。