因此,我确定这是一个熟悉的问题,因为我已经看到了所有答案,但是我在这部分工作特别困难。我觉得我已经接近了,但是其中一些输出很奇怪。几乎就像它以某种方式被乘以(?)。希望输出可以使我的意思更清楚。有了我在本MOOC课程中所处的位置,我可以肯定我打算在调用原始printStars方法时使用while循环,因此我想使我的代码尽可能与之相似。

public class HelloWorld {
private static void printStars(int amount) {
int i = 0;
while (i<amount) {
  System.out.print("*");
  i++;
 }
}
private static void printRectangle(int width, int height){
 int i = 0;
  while(i < height){
    int j = 0;
      while(j < width){
        printStars(width);
        j++;
}
System.out.println();
i++;
 }
}


public static void main(String[] args) {
printRectangle(width,height);
 }
}


请注意,上面的printRectangle方法中的宽度和高度实际上不是我的代码,而只是替代以下示例输出:

printRectangle(1,2):

*
*


printRectangle(1,5):

*
*
*
*
*


它似乎至少可以在高度上正常工作,但是一旦我开始测试宽度,它就会全部拧紧

printRectangle(2,2):

****
****


printRectangle(3,2):

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


尽管宽度非常奇怪,但高度似乎仍然可以正常工作

printRectangle(2,3):

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


printRectangle(3,3):

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


这太奇怪了,老实说,我不知道为什么要这么做。我敢肯定这很简单,我没看到,但是我已经坚持了好几个小时,对我们的帮助表示赞赏。

最佳答案

您循环打印矩形就足够了。您不需要额外的打印方法。或者,您不需要额外的循环选择。

像这样:

private static void printRectangle(int width, int height){
 int i = 0;
  while(i < height){
    int j = 0;
      while(j < width){
        System.out.print("*");
        j++;
}
System.out.println();
i++;
 }
}


要么

private static void printStars(int amount) {
int i = 0;
while (i<amount) {
  System.out.print("*");
  i++;
 }
}
private static void printRectangle(int width, int height){
 int i = 0;
  while(i < height){
         printStars(width);
}
System.out.println();
i++;
 }
}


任何一个都可以工作!

10-07 20:16