Java使用for循环、print与println绘制金字塔反斜杠位置错误问题
问题原因
- 代码中多余的
if (i < 4)判断是核心错误:该判断限制了只有前4层输出左斜杠/,既不符合“两侧各有5个斜杠/反斜杠”的要求,也导致最后一层(i=4)反斜杠前的空格是从行首直接计算的,少了左斜杠占用的1个字符宽度,最终最后一个反斜杠位置比预期偏左1位。
修复方案
删除if ( i < 4) {这行代码和对应的结束大括号即可,修改后完整代码如下:
public static void main(String[] args) { for (int i = 0; i < 5; i++) { for (int a = 4 - i; a > 0; a--) { System.out.print(" "); } System.out.print("/"); for (int a = 2 * i; a > 0; a--) { System.out.print(" "); } System.out.println("\\"); } }
修复后输出效果
/\ / \ / \ / \ / \
完全符合5层金字塔的要求,左右两侧各有5个斜杠/反斜杠,所有反斜杠位置对齐正确。
内容的提问来源于stack exchange,提问作者angryFrog
相关产品推荐
相关产品推荐

