双重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循环是循环条件和数字直接相关的循环
- 分析要比写代码更重要