我的任务是创建一个使用参数(行和列)显示模式的程序,必须从键盘读取行和列的数量,并且必须使用2个循环。我尝试了一下,它以某种方式正确,但是我不想在for循环中增加,但是每当我删除它时,我都不会得到想要的模式

例如,如果我输入rows:2和column:4,则模式将是3行5列

我需要像这样的模式用于rows:2和columns:4

XXXX
XXXX


有人可以帮我说出问题所在吗?

public static void main(String[] args)  {
    Scanner in = new Scanner(System.in);

    System.out.println("Enter number of rows");
    int rows = in.nextInt();

    System.out.println("Enter number of columns");
    int columns = in.nextInt();

    Pattern(rows, columns);
}
public static void Pattern (int rows, int columns) {
    for ( int i=0; i <= rows ;i++) {
        for ( int a=0; a<= columns ;a++) {
            System.out.print("X");
            // only print to have pattern on same row
        }
        System.out.println();
    }
}

最佳答案

您的错误在于:

for ( int i=0; i <= rows ;i++) {
    for ( int a=0; a<= columns ;a++) {


问题是i0开始并一直到rows(与acolumns相同)

解决此问题的方法是简单地更改:

int i=0




int i=1


并为a做同样的事情。

这被称为“一个错误关闭”,并且足够通用以拥有自己的名称。 (你不是一个人 :) )

您也可以将两个<=都更改为<以解决此问题。

09-10 02:01
查看更多