嵌套for循环工作原理解析:循环是同步计数还是独立执行?
代码运行逻辑解析
核心功能
这段JavaScript代码用来生成一个size x size(此处size=8)的国际象棋棋盘样式字符串,最终输出的内容每行由空格和#交替组成,相邻行的起始字符完全相反。
逐行拆解
变量初始化
let size = 8;:定义棋盘的边长为8let board = "";:初始化空字符串,用于拼接最终的棋盘内容
外层
for循环(y循环)- 控制棋盘的行数,循环从
y=0执行到y=7(共8次,对应8行) - 每完成一轮内层循环后,向
board添加换行符\n,实现行与行的分隔
- 控制棋盘的行数,循环从
内层
for循环(x循环)- 控制每行的列数,循环从
x=0执行到x=7(共8次,对应8列) - 核心判断逻辑:
(x + y) % 2 == 0- 当x和y的和为偶数时,向
board添加空格 - 当x和y的和为奇数时,向
board添加#
- 当x和y的和为偶数时,向
- 这个逻辑会让每行字符交替排列,且相邻行的起始字符相反(比如第0行从空格开始,第1行从
#开始)
- 控制每行的列数,循环从
最终输出效果
循环执行完毕后,board会变成一个8行的字符串,打印后呈现标准国际象棋棋盘样式:# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
嵌套循环的执行规则
嵌套的for循环是各自独立、按层级顺序执行的,绝非同步计数:
- 外层循环先启动,当
y=0时,会完整跑完内层x循环的所有8次迭代 - 内层循环全部执行完毕后,才会回到外层循环,让
y自增1,随后再次完整执行一轮内层x循环 - 重复这个过程,直到外层循环的
y达到8,整个循环结束
简言之:外层循环走一步,内层循环走完全程,两个循环的计数相互独立,外层循环的进度决定内层循环的执行时机,但内层循环的计数不会影响外层。
内容的提问来源于stack exchange,提问作者AlexanderSchneider
相关产品推荐
相关产品推荐

