将嵌套for循环减少为单个for循环

时间:2016-02-21 06:47:36

标签: java for-loop nested

我正在为我的一个班级做一些家庭作业,并遇到一个我遇到麻烦的问题。我无法弄清楚我会怎么做。如果有人可以指出我正确的方向,我将如何去做那将是伟大的。这是问题所在。

嵌套循环

for (int i = 1; i <= height; i++)
{
    for (int j = 1; j <= width; j++) { System.out.print("*"); }
        System.out.println();
}

显示给定宽度和高度的矩形,例如

****
****
****

写一个显示相同矩形的for循环。

2 个答案:

答案 0 :(得分:1)

for(int i=1; i<=height*width; i++) {
    System.out.print("*");
    if(i%width==0){
        System.out.println();
    }
}

答案 1 :(得分:0)

您可以在两个非嵌套的循环中拆分循环。第一个外观定义为每行打印的字符串:

StringBuilder sb = new StringBuilder();
for (int i = 0; i < width; i++) {
  sb.append("*");
}
String line = sb.toString();

现在,您可以将line用于所有行:

for (int i = 0; i < height; i++) {
    System.out.println(line);
}

请注意,此迭代从索引0开始,最后一个索引与widthheight不同,这在这里没有什么区别,但这是一个很好的做法,因为几乎Java中的所有内容都使用基于0的索引。

虽然这个解决方案实际上没有像@ KenBekov那样使用单个for循环,但我发现这样做更具可读性。

相关问题