
本文介绍一种不使用任何 for/while 循环,仅通过字符串重复(str_repeat)和逻辑排布生成标准 8×8 国际象棋棋盘 html 表格的简洁方案。
国际象棋棋盘具有严格的黑白交替规律:每行 8 格,相邻行列颜色相反,整体呈“错位镶嵌”结构。虽然传统实现多依赖嵌套循环,但 PHP 提供了强大的字符串构建能力——str_repeat() 函数可高效复用固定模式,完全规避显式循环。
核心思路是识别棋盘的周期性结构:
- 每一行由 4 组
单元格构成; - 奇数行(第1、3、5、7行)以黑色起始:
重复 4 次; - 偶数行(第2、4、6、8行)以白色起始:
重复 4 次; - 整个棋盘由「黑起始行 + 白起始行」这一对组合重复 4 次完成(共 8 行)。
以下是完整、可直接运行的代码:
"; $white = "$td'white'>"; // 生成4组:每组包含1行黑起始 + 1行白起始 echo str_repeat( "
" . str_repeat($black . $white, 4) . " " . "" . str_repeat($white . $black, 4) . " ", 4 ); ?>✅ 优势说明:
立即学习“PHP免费学习笔记(深入)”;
- 零循环语句,符合题目约束;
- 仅 2 次 str_repeat 调用,逻辑清晰、性能优异;
- HTML 结构规整,兼容所有现代浏览器;
- 易于扩展(如改为 10×10 只需调整重复次数与单元组合)。
⚠️ 注意事项:
- bgcolor 属性在 HTML5 中已过时,生产环境建议改用 CSS 类或内联 style="background-color: black;";
- 当前设定了固定宽高(width="20px" / height="40px"),若需响应式适配,应改用 CSS Grid 或 Flexbox;
- 此方案依赖棋盘严格偶数尺寸(8×8),若需通用化 N×N(N 为偶数),仍需少量逻辑判断,但依然可避免 for 循环。
该方法不仅解决了技术限制问题,更体现了“用对工具代替蛮力循环”的编程思维——在合适场景下,函数式字符串操作比迭代更简洁、更具可读性与可维护性。
- 奇数行(第1、3、5、7行)以黑色起始:











