You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求仅用2个for循环实现多种星型图案的JavaScript代码

用2个for循环实现多星型图案打印

没问题,我帮你调整代码,只用两个for循环就能打印出常见的几种星型图案(矩形、左对齐直角三角、右对齐直角三角、等腰三角、菱形)。先说说你的原代码问题:它用了while循环预生成字符串,还嵌套了for,而且只针对菱形做了逻辑,现在我们把所有图案的打印逻辑整合到两个循环里:

const patternSize = 5; // 可以修改这个值调整图案大小

// 外层循环:控制所有图案的行(含分隔空行)
for (let i = 0; i < 6 * patternSize + 2; i++) {
  let currentLine = '';
  // 内层循环:构建每行的空格和星号
  for (let j = 0; j < 2 * patternSize - 1; j++) {
    // 判断当前行属于哪个图案
    if (i < patternSize) {
      // 矩形:每行固定patternSize个星号
      currentLine += j < patternSize ? '*' : ' ';
    } else if (i === patternSize) {
      // 分隔空行
      currentLine = '';
      break;
    } else if (i < 2 * patternSize + 1) {
      // 左对齐直角三角形
      const rowIndex = i - patternSize - 1;
      currentLine += j <= rowIndex ? '*' : ' ';
    } else if (i === 2 * patternSize + 1) {
      currentLine = '';
      break;
    } else if (i < 3 * patternSize + 2) {
      // 右对齐直角三角形
      const rowIndex = i - (2 * patternSize + 2);
      currentLine += j >= patternSize - 1 - rowIndex ? '*' : ' ';
    } else if (i === 3 * patternSize + 2) {
      currentLine = '';
      break;
    } else if (i < 4 * patternSize + 3) {
      // 等腰三角形
      const rowIndex = i - (3 * patternSize + 3);
      const midPos = patternSize - 1;
      currentLine += j >= midPos - rowIndex && j <= midPos + rowIndex ? '*' : ' ';
    } else if (i === 4 * patternSize + 3) {
      currentLine = '';
      break;
    } else {
      // 菱形
      const rowIndex = i - (4 * patternSize + 4);
      const midPos = patternSize - 1;
      const starOffset = rowIndex < midPos ? rowIndex : 2 * midPos - rowIndex;
      currentLine += j >= midPos - starOffset && j <= midPos + starOffset ? '*' : ' ';
    }
  }
  console.log(currentLine.trimEnd()); // 去掉行尾多余空格,输出更整洁
}

代码说明:

  • 核心逻辑:只用两个for循环——外层循环遍历所有需要输出的行(包括各个图案的行和分隔空行),内层循环负责构建每行的字符内容。
  • 图案切换:通过判断外层循环的i值区间,切换到对应图案的打印逻辑,每个图案之间用空行分隔,看起来更清晰。
  • 可扩展性:修改patternSize变量就能一键调整所有图案的大小,不用改逻辑。

运行这段代码,你就能看到矩形、左三角、右三角、等腰三角、菱形依次打印出来啦~

内容的提问来源于stack exchange,提问作者Rohit Ghodake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:58:37