首先我们可以先了解一下 循环 的目的是什么?
循环的目的主要是用来执行一些重复性的操作;
语法结构:
for 循环主要用于把某些代码循环若干次,通常跟计数有关系;
for(初始化变量; 条件表达式; 操作表达式){
循环体
}
- 初始化变量:就是用var 声明的一个普通变量,通常用于作为计数器使用;
- 条件表达式:用来决定每一次循环是否继续执行,就是终止循环的条件;
- 操作表达式:是每次循环最后执行的代码,经常用于我们计数器变量的更新(自增或自减);
执行过程:
for(var i = 1; i <= 10; i++){
alert('你好,javascript');
}
- 首先执行里面的计数器变量 var i = 1;但是这句话只在for中执行一次;
- 判断 i <= 10;
- 如果满足条件就执行循环体 alert(...)里面的内容,如果不满足条件 就退出循环;
- 然后执行 i++ 自增;接着再去执行 循环体里面的内容,如果满足条件,就去执行循环体,不满足条件的话 退出循环;
- 再次执行 i++ 自增,接着再去执行 循环体里面的内容,如果满足条件,就去执行循环体,不满足条件的话 退出循环;
- .......
for 循环不光可以执行相同的代码,还可以执行不同的代码,因为我们有计数变量 i 的存在,i 每次的循环值都会变化。
for(var j = 1; j <= 10; j++){
if(j == 3){
console.log('你已经三岁了!!!!');
}else if( j > 9) {
console.log('你已经是小大人了');
}else {
console.log('你已经'+j+'岁了');
}
}
// 执行结果:
//你已经1岁了
// 你已经2岁了
// 你已经三岁了!!!!
// 你已经4岁了
// 你已经5岁了
// 你已经6岁了
// 你已经7岁了
// 你已经8岁了
// 你已经9岁了
// 你已经是小大人了
计算1 ~ 100 之间的整数的累加和:
var sum = 0; //声明一个求和的变量
for(var k = 1; k <= 100; k++){
sum = sum + k;
}
console.log(sum);
案例:
// 求1~100之间的数的平均值:
var sum = 0; //声明一个求和的变量
for(var k = 1; k <= 100; k++){
sum = sum + k;
}
console.log(sum/100); // 50.5
// 求1~100之间所有偶数和奇数的和
var s = 0;
var f = 0;
for(var l = 1; l <= 100; l++){
if(l % 2 == 0){
s = s + l;
}else {
f = f + l;
}
}
console.log(s,f); // 2550 2500
// 求1~100 之间的所有能被3整除的数字的和
var end = 0;
for(var x = 1; x <= 100; x++){
if(x % 3 == 0){
end += x;
}
}
console.log(end); // 1683
// 求学生的平均成绩:
// 弹出输入框输入总的学生人数,根据输入的总的学生人数,弹出对应人数的成绩,计算出总成绩和平均成绩;
var some = 0;
var c = prompt('请输入我们班总共有多少人?');
for(var h = 1; h <= c; h++){
var tu = prompt('请输入第'+h+'个学生的成绩');
some = some + parseFloat(tu);// 因为prompt得到的是一个字符串类型的,所以需要对其转换成数字型的,因为成绩可以是小数,所以转换成 parseFloat;
}
alert('学生的总成绩是'+some );
alert('学生的平局成绩是:'+ some/c);
双重 for 循环
循环嵌套是值在一个循环语句中再定义一个循环语句的语法结构,例如 在 for 循环语句中,在嵌套一个 for 循环,这样的 for 循环语句我们称之为 双重 for 循环;
语法结构:
for(外层的初始化变量; 外层的条件表达式; 外层的操作表达式){
for(里层的初始化变量; 里层的条件表达式; 里层的操作表达式){
执行语句;
}
}
执行过程
我们可以把里面的循环看作是外层的循环语句;外层循环一次 里层循环执行全部;
// 我们可以通过代码 验证其执行过程:
for(var i = 1; i <= 2; i++){
console.log('我是“外层”的第'+i+'次循环');
for(var j = 1; j <= 3; j++){
console.log('我是里层的第'+j+'次循环');
}
}
// 我是“外层”的第1次循环
// 我是里层的第1次循环
// 我是里层的第2次循环
// 我是里层的第3次循环
// 我是“外层”的第2次循环
// 我是里层的第1次循环
// 我是里层的第2次循环
// 我是里层的第3次循环
// 打印一行五角星
var str = ''
for(var s = 1; s <= 5; s++){
for(var h = 0; h <= 4; h++){
str = str + '★'; //让一行显示5个星星,我们采取追加字符串的方法来解决;如果不写的话,就是单独一行写的;
}
str = str + '\n';
}
console.log(str);
// 根据用户输入的数字来进行打印
var num = prompt('请输入你要打印几行几列的星星');
var str = ''
for(var s = 1; s <= num; s++){
for(var h = 1; h <= num; h++){
str = str + '★';
}
str = str + '\n';
}
console.log(str);
// 打印倒三角形
var str = ''
for(var q = 1; q <= 10; q++){ // 外层循环来控制打印的行数
for(var hk = q; hk <= 10; hk++){ //里层循环打印的个数不一样,可以让hk = q;来依次减少
str = str + '★';
}
str = str + '\n';
}
console.log(str);
// 打印正三角形
var str = ''
for(var q = 1; q <= 10; q++){ // 外层循环来控制打印的行数
for(var hk = 1; hk <= q; hk++){ //里层循环打印的个数不一样,可以让hk <= q;来依次增加
str = str + '★';
}
str = str + '\n';
}
console.log(str);
// 打印九九乘法表
var str = '';
for(var i = 1; i <= 9; i++){
for(var e = 1; e <= i; e++){
str = str + (e + ' x ' + i + ' = ' + i * e + '\t'); // 1 x 2 = 2
}
str = str + '\n'
}
console.log(str);