双重for循环
1、概述
很多情况下,单层for循环并不能满足我们的需求,比如我们要打印一个5行5列的图形,打印一个倒直角三角形等,此时就可以通过循环嵌套来实现
循环嵌套是指在一个循环语句中再定义一个循环语句的语法结构,例如在for循环语句中,可以再嵌套一个for循环,这样的for循环语句我们称之为双重for循环。
// 1、双重for循环 语法结构
// for (外层的初始化变量; 外层的条件表达式; 外层的操作表达式) {
// for (里层的初始化变量; 里层的条件表达式是; 里层的操作表达式) {
// // 执行语句;
// }
// }
// 2、我们可以把里面的循环看做是外层循环的语句
// 3、外层循环循环一次,里面的循环执行全部
// 4、代码验证、
for (var i = 1; i <= 3; i++) {
console.log('这是外层循环第' + i + '次');
for (var j = 1; j <= 3; j++) {
console.log('这是里层循环第' + j + '次');
}
}
// 打印五行五列星星
var str = '';
for (var i = 1; i <= 5; i++) { //外层循环负责五行打印
for (var j = 1; j <= 5; j++) {
str = str + '★'
}
// 如果一行打印完毕5个星星就要另起一行 加 \n
str = str + '\n';
}
console.log(str);
// 打印n行n列的星星
var rows = prompt('请您输入行数');
var cols = prompt('请您输入列数');
str = '';
for (var i = 1; i <= rows; i++) {
for (var j = 1; j <= cols; j++) {
str = str + '★';
}
str = str + '\n';
}
console.log(str);
// 打印倒三角形案例
var str = '';
for (var i = 1; i <= 10; i++) { //外层循环控制行数
for (var j = i; j <= 10; j++) { //里层循环打印的个数不一样 j=i
str = 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 = str + '\n';
}
console.log(str);
// 九九乘法表案例
// 一共有9行,但是每行的个数不一样,隐刺需要用到双重for循环
// 外层的for循环控制行数 i,循环9次,可以打印9行
// 内层的for循环控制每行公式 j
// 核心算法:每一行 公式的个数正好和行数一致,j<=i;
// 每行执行完毕,都需要重新换一行
var str = '';
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
str += j + '×' + i + '=' + i * j + '\t';
}
str = str + '\n';
}
console.log(str);
for循环小结
- for循环可以重复执行某些相同的代码
- for循环可以重复执行些许不同的代码,因为我们有计数器
- for循环可以重复执行某些操作,比如算术运算符加法操作
- 随着需求增加,双重for循环可以做更多、更好看的效果
- 双重for循环,外层循环一次,内层for循环全部执行
- for循环是循环条件和数字直接相关的循环
- 分析要比写代码更重要