2.2 循环嵌套
①.语法
// 嵌套循环:循环内部包裹其他的循环 // 外侧循环执行一次,内部循环执行一轮 // 实例 for (var i = 0; i < 5; i++) { for (var j = 0; j < 10; j++) { console.log('我爱你') } }
②.案例
<script> // 1.打印矩形 每次只能打印一颗* for (var i = 0; i < 5; i++) { for (var j = 0; j < 5; j++) { document.write('*'); } document.write('<br>'); } // 2.打印直角三角形 // * // ** // *** // **** // ***** // 打印图片 外层控制行,内层控制列 for (var i = 0; i < 5; i++) { for (var j = 0; j < i + 1; j++) { document.write('*'); } document.write('<br>') } // 3.打印乘法口诀表 // 表格做法: document.write('<table><tbody>'); // 行 for (var i = 1; i <= 9; i++) { //每列 document.write("<tr>"); for (var j = 1; j <= i; j++) { document.write('<td>' + j + '*' + i + '=' + i * j + '</td>'); } document.write('</tr>'); // document.write('<br>'); } document.write('</tbody></table>'); // 空格做法 // 行 for (var i = 1; i <= 9; i++) { // 列 for (var j = 1; j <= i; j++) { // i * j = ij document.write(j + '*' + i + '=' + i * j + ' '); } document.write('<br>'); } </script>
③.提升案例
<script> // 输出1 - 100之间所有的素数(质数)(只能被1和自身整除的数, 但是1不是质数) // 方法1 标志位思想 var flag = true; for (var i = 1; i <= 100; i++) { for (var j = 2; j < i; j++) { if (i % j == 0) { flag = false; // 不是质数 break; } } if (flag && i != 1) { console.log(i); } flag = true; } // 方法2 计数器思想 var num = 0; for (var i = 1; i <= 100; i++) { for (var j = 1; j <= i; j++) { if (i % j == 0) { num++; } } // 判断能被整除两次的是质数 if (num == 2) { console.log(i); } // 重置num num = 0; } // 方法3 for (var i = 1; i <= 100; i++) { for (var j = 1; j <= i; j++) { if (i % j == 0) { break; } if (i == j + 1) { console.log(i); } } if (i == 2) { console.log(i); } } // 打印一个等腰三角形 // * // *** // ***** // ******* // ********* // 行 for (var i = 1; i <= 5; i++) { for (var j = 1; j <= 5 - i; j++) { document.write(' '); } for (var k = 1; k <= 2 * i - 1; k++) { document.write('*'); } document.write('<br>'); } </script>
2.3 for循环非一般情况和死循环
①.for循环非一般情况
// for循环非一般写法 var i = 0 for (; i < 5;) { console.log('我爱你'); i++; }
for循环结束关键看条件表达式结果为真为假
②.死循环
// 简写 // 简写不能省略; for (; true;); for (; ;);
2.4 while循环
①.语法
var i = 0; while (一般是条件表达式,结果是布尔值) { 循环体; 自增自减表达式; }
②.执行流程
// 执行流程 // 1.首次执行 // 1-1 先执行初始化语句 // 1-2 执行条件表达式 // 条件为真,执行循环体,执行自增自减表达式 // 条件为假,跳出while循环 // 2.非首次执行 // 2-1 执行条件表达式 // 条件为真,执行循环体,执行自增自减表达式 // 条件为假,跳出while循环
③. for循环和while循环的适用场景
- for循环适合有明显循环次数的情况
- while循环适合有一个明确的结束条件的情况
2.5 do while循环
①.语法
var i = 0; do { 循环体 自增自减表达式 } while(一般是条件表达式,结果是布尔值);
②.执行流程
// 执行过程 // 1. 执行初始化表达式 // 2. 执行循环体和自增自减表达式 // 3. 执行条件表达式 // 结果为真,继续执行循环体 // 结果为假,跳出循环
③.while和do while的区别
- while 是先判断条件,后选择是否执行
- do while 是先执行一遍循环体,再去判断条件
- do while 保证了循环体至少被执行一次
2.6关键字continue
①.continue作用
- 作用:在循环体中,结束本次循环,继续执行下一次循环
②.continue案例
// 打印1~100以内所有的能整除3的数字 for (var i = 1; i <= 100; i++) { if (!(i % 3 == 0)) { continue; } // console.log(i); } // 当if分支语句中只有一行语句时,可以省略大括号 for (var i = 1; i <= 100; i++) { if (!(i % 3 == 0)) continue; console.log(i);
2.7 关键字break
①.break作用
- 在 switch case 中表示跳出switch分支语句
- 在 循环中表示跳出最近的一层循环
②.break案例
for (var i = 0; i < 3; i++) { for (var j = 0; j < 3; j++) { if (i == 1) { break; } console.log(j, 'j'); } console.log(i, 'i'); }
分类:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统