随笔 - 25, 文章 - 0, 评论 - 0, 阅读 - 3568

(四).JavaScript的循环结构

Posted on   云语不知  阅读(27)  评论(0编辑  收藏  举报

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 + '&nbsp;&nbsp;');
}
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);
}
}
// 打印一个等腰三角形
// &nbsp;&nbsp;&nbsp;&nbsp;*
// &nbsp;&nbsp;&nbsp;***
// &nbsp;&nbsp;*****
// &nbsp;*******
// *********
// 行
for (var i = 1; i <= 5; i++) {
for (var j = 1; j <= 5 - i; j++) {
document.write('&nbsp');
}
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循环的适用场景

  1. for循环适合有明显循环次数的情况
  2. while循环适合有一个明确的结束条件的情况

2.5 do while循环

①.语法

var i = 0;
do {
循环体
自增自减表达式
} while(一般是条件表达式,结果是布尔值);

②.执行流程

// 执行过程
// 1. 执行初始化表达式
// 2. 执行循环体和自增自减表达式
// 3. 执行条件表达式
// 结果为真,继续执行循环体
// 结果为假,跳出循环

③.while和do while的区别

  1. while 是先判断条件,后选择是否执行
  2. do while 是先执行一遍循环体,再去判断条件
  3. 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');
}
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示