0124 for循环:语法结构、执行过程、案例
1.1 for循环
1.1.1 语法结构
for(初始化变量; 条件表达式; 操作表达式 ){
//循环体
}
名称 | 作用 |
---|---|
初始化变量 | 通常被用于初始化一个计数器,该表达式可以使用 var 关键字声明新的变量,这个变量帮我们来记录次数。 |
条件表达式 | 用于确定每一次循环是否能被执行。如果结果是 true, 就继续循环,否则退出循环。 |
操作表达式 | 用于确定每一次循环是否能被执行。如果结果是 true 就继续循环,否则退出循环。 |
1.1.2 执行过程:
1、初始化变量,初始化操作在整个 for 循环只会执行一次。
2、执行条件表达式,如果为true,则执行循环体语句,否则退出循环,循环结束。
3、执行操作表达式,此时第一轮结束。
4、第二轮开始,直接去执行条件表达式(不再初始化变量),如果为 true ,则去执行循环体语句,否则退出循环。
5、继续执行操作表达式,第二轮结束。
6、后续跟第二轮一致,直至条件表达式为假,结束整个 for 循环。
// 我的补充:for循环的 循环变量最后的值
for (var i = 0; i < 10; i++) {
console.log(i); // 输出0 到 9
}
console.log('------------------------');
console.log(i); // 输出10,最后一轮进不了循环
for 循环的执行过程
1. 首先执行里面的计数器变量 var i = 1 .但是这句话在for 里面只执行一次 index
2. 去 i <= 100 来判断是否满足条件, 如果满足条件 就去执行 循环体 不满足条件退出循环
3. 最后去执行 i++ i++是单独写的代码 递增 第一轮结束
4. 接着去执行 i <= 100 如果满足条件 就去执行 循环体 不满足条件退出循环 第二轮
for (var i = 1; i <= 100; i++) {
console.log('你好吗');
}
1.1.3 for 循环重复相同的代码
比如输出10句“媳妇我错了”
// 基本写法
for(var i = 1; i <= 10; i++){
console.log('媳妇我错了~');
}
// 用户输入次数
var num = prompt('请输入次数:');
for ( var i = 1 ; i <= num; i++) {
console.log('媳妇我错了~');
}
1.14 for 循环重复不相同的代码
for循环因为有了计数器的存在,还可以重复的执行某些操作,比如做一些算术运算。
例如,求输出1到100岁:
// 基本写法
for (var i = 1; i <= 100; i++) {
console.log('这个人今年' + i + '岁了');
}
例如,求输出1到100岁,并提示出生、死亡
// for 里面是可以添加其他语句的
for (var i = 1; i <= 100; i++) {
if (i == 1) {
console.log('这个人今年1岁了, 它出生了');
} else if (i == 100) {
console.log('这个人今年100岁了,它死了');
} else {
console.log('这个人今年' + i + '岁了');
}
}
demo:平均值、奇偶数和、整除和
// 1. 求1-100之间所有数的平均值 需要一个 sum 和的变量 还需要一个平均值 average 变量
var sum = 0;
var average = 0;
for (var i = 1; i <= 100; i++) {
sum = sum + i;
}
average = sum / 100;
console.log(average);
// 2. 求1-100之间所有偶数和奇数的和 我们需要一个偶数的和变量 even 还需要一个奇数 odd
var even = 0;
var odd = 0;
for (var i = 1; i <= 100; i++) {
if (i % 2 == 0) {
even = even + i;
} else {
odd = odd + i;
}
}
console.log('1~100 之间所有的偶数和是' + even);
console.log('1~100 之间所有的奇数和是' + odd);
// 3. 求1-100之间所有能被3整除的数字的和
var result = 0;
for (var i = 1; i <= 100; i++) {
if (i % 3 == 0) {
// result = result + i;
result += i;
}
}
console.log('1~100之间能够被3整数的数字的和是:' + result);
demo:求学生成绩
// 弹出输入框输入总的班级人数(num)
// 依次输入学生的成绩( 保存起来 score), 此时我们需要用到
// for 循环, 弹出的次数跟班级总人数有关系 条件表达式 i <= num
// 进行业务处理: 计算成绩。 先求总成绩( sum), 之后求平均成绩( average)
// 弹出结果
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);