java - 星号矩形问题 Java MOOC 39.3

标签 java methods while-loop

所以我确信这是一个熟悉的问题,因为我到处都看到了答案,但我在这一部分上遇到了特别困难。我觉得我很接近,但有些输出很奇怪。几乎就像它正在以某种方式相乘(?)。希望输出能够清楚地说明我的意思。根据我在这门 MOOC 类(class)中的情况,我非常确定我打算在调用原始 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 方法中的宽度和高度实际上并不是我的代码,而只是替换下面的示例输出:

打印矩形(1,2):

*
*

打印矩形(1,5):

*
*
*
*
*

它似乎至少在高度上可以正常工作,但是一旦我开始测试宽度,它就会变得一团糟

打印矩形(2,2):

****
****

打印矩形(3,2):

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

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

打印矩形(2,3):

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

打印矩形(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++;
 }
}

任何一个都可以!!

关于java - 星号矩形问题 Java MOOC 39.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55130873/

相关文章:

java - 使用按钮停止和开始循环

java - JFrame.setDefaultLookAndFeelDecorated(true);

java - 如何在范围/菜单之外引用数组?

java - 如何在java中编写一个简单的方法

function - Go中的函数和方法有什么区别?

Javascript从数组调用对象方法?

php - 如何使用 MySQL 和 PHP 在 while 循环中返回不同 html 行中的不同 html 列?

java - 如果未进行任何更改,DynamoDb 是否会更新任何内容?

java - 沉浸式模式 Android Studio

c - 如何将for循环转换为while循环?