在java中没有使用嵌套for循环获得正确的输出

时间:2014-07-05 09:03:31

标签: java loops nested

我正在做一个简单的练习,我的代码应输出一个5x5的#板。它输出垂直线而不是水平线。

public class SqareBoared_with_NestedLoops {
    public static void main(String[] args) {
        for (int i = 0; i <= 5; i++) {
            for (int j = 0; j <= 5; j++) {
                System.out.println("# ");
            }
            System.out.println();
        }
    }
}

输出5条垂直的#。

4 个答案:

答案 0 :(得分:0)

public class SqareBoared_with_NestedLoops {
    public static void main(String[] args) {
        for (int i = 0; i <= 5; i++) {
            for (int j = 0; j <= 5; j++) {
                System.out.print("# ");
            }
            System.out.println();
        }
    }
}

在内部循环中使用System.out.print()方法。

print()方法只打印字符(或字符串),但println()方法也会在末尾打印字符(或字符串)和换行符\n字符。

答案 1 :(得分:0)

您在内循环中使用println(),因此每次都会打印换行符。将其替换为print()

... 
for (int j = 0; j <= 5; j++) {
    System.out.print("# ");
}
... 

答案 2 :(得分:0)

要打印5元素,您的循环需要从0转到5排除。

此外,只有在打印完整行的5元素后才需要打印行分隔符:

for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
        System.out.print("# ");
    }
    System.out.println();
}

答案 3 :(得分:0)

带有修复的轻微改进版本,使用StringBuilder并每行打印一次

public static void main(String[] args) {
    StringBuilder sb = null;

    for (int i = 0; i < 5; i++) {
        sb = new StringBuilder(); 
        for (int j = 0; j <= 5; j++) {
            sb.append("# ");
        }
        System.out.println(sb.toString());
    }
}