左下直角三角形每行星号数等于行号,无需空格;右下直角三角形每行空格数为n−i、星号数为i,需双层循环控制。

用循环打印直角三角形,关键是控制每行的空格数和星号数。常见的是左对齐(顶点在左下或左上)和右对齐(顶点在右下,需空格缩进)。下面以最常用的“左下直角、靠左对齐”和“右下直角、靠右对齐”两种为例,讲清空格与星号的规律和写法。
左下直角三角形(不带空格,纯星号)
这是最基础的形式:第1行1个*,第2行2个*,……第n行n个*。不需要空格,只用一个内层循环控制星号数量:
for (int i = 1; i <h3>右下直角三角形(需要空格缩进)</h3><p>顶点在右下角,图形靠右对齐。要让第i行有i个星号,且整体右对齐,就得在星号前补足空格。假设总行数为n,那么第i行应有 <strong>(n - i)</strong> 个空格,再跟i个星号:</p><div class="aritcle_card flexRow artxards"> <div class="artcardd flexRow"> <a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill5980" title="javascript-pro"><img src="https://img.php.cn/upload/skill/000/000/081/179074807567238.jpg" alt="javascript-pro" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a rel="nofollow" href="/xiazai/skill5980" title="javascript-pro" class="overflowclass">javascript-pro</a> <p class="overflowclass">专注现代 ECMAScript、异步编程、性能优化和全栈的 JavaScript 专家,适用于现代开发</p> </div> <a rel="nofollow" href="/xiazai/skill5980" title="javascript-pro" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div>
- 第1行:n−1个空格 + 1个*
- 第2行:n−2个空格 + 2个*
- ……
- 第n行:0个空格 + n个*
对应代码:
for (int i = 1; i <h3>控制格式的小技巧</h3>
- 用
System.out.print()连续输出不换行,System.out.println()换行 - 空格用
" "(字符串),别用' '(char)混用——虽然通常能自动转换,但保持类型一致更稳妥 - 想打印等宽效果(比如在终端对齐),确保字体是等宽字体(如 Consolas、Monospace),否则空格和星号宽度可能不一致
- 调试时可在每行开头加行号,例如
System.out.print("[" + i + "] ");,方便核对空格和星号数量
扩展:倒置直角三角形(顶点在左上)
如果要顶点朝上,只需把行数倒过来:第1行n个*,第2行n−1个*……
for (int i = n; i >= 1; i--) {
for (int j = 1; j <p>若要顶点朝上且靠右,则每行空格数为 <strong>i − 1</strong>(因为最大行n个星号无空格,最小行1个星号前面有n−1个空格)。</p>Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










