如何在java上使用“|”和“_”制作网格?

问题描述 投票:0回答:2

我是 Java 初学者,我的编程老师给我们布置了一项作业,要求我们使用“|”制作一个由小方块组成的网格。和 ”_”。 Assignment

我知道这可能看起来很愚蠢,但这是我能做的最好的事情。我设法制作了列,但现在我不知道如何制作行。

package practice;

public class practice {
    
    public static void main (String[] args) {
    
    squares(4);
        
    }
    
    
    public static void squares(int number) {
        for (int i=0; i<number; i++) {
        System.out.print(" _");
        }
            System.out.println();
    
        for (int i=0; i<number; i++) {
        System.out.print("|_");
        }
            System.out.print("|");
            System.out.println();
    
    }
    
}

到目前为止我已经学会了如何使用条件和循环,而这次作业是关于使用方法的。

java loops methods conditional-statements
2个回答
2
投票

我剧透了,所以首先你可以尝试自己解决它。

如果你仔细观察,你会看到多少行?

 _ _ 
|_|_|
|_|_|

3 行,由于“标题”一行,总是多一行:

_ _

其中有多少遵循相同的模式?

除了第一个以外的所有

您可以使用以下代码来实现:

public static void main(String[] args) {

    generateSquare(2, 2);

}


private static void generateSquare(int qtyRows, int qtyCols) {

    System.out.print(" ");

      System.out.print("_ ".repeat(qtyCols));

    System.out.println("");

    

    for(int x = 0; x < qtyRows; x++) {  

      System.out.print("|");

      

      System.out.print("_|".repeat(qtyCols));

      System.out.println("");

    }

}

请注意在 String 对象上使用重复方法,该方法使您无需循环即可重复该字符串。


1
投票

这应该可以达到你想要的效果。使用

java.util.Scanner
获取用户输入的行数和列数。然后打印带有一些
for
循环的正方形。如果您担心效率,请改用
StringBuilder
,但为了简单起见,我没有在这里使用它。

import java.util.Scanner;

public class Practice {
    public static void main(String[] args) {
        printGrid();
    }

    public static void printGrid() {
        // get input
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter rows");
        int rows = scanner.nextInt();
        System.out.println("Enter columns");
        int cols = scanner.nextInt();
        scanner.close()

        // print top line
        if (rows > 0) {
            System.out.print(" ");  // padding
            for (int i = 0; i < cols; i++) {
                System.out.print("_ ");
            }
            System.out.println();  // new line
        }
        for (int i = 0; i < rows; i++) {
            // print left line
            System.out.print("|");
            for (int j = 0; j < cols; j++) {
                System.out.print("_|");
            }
            System.out.println();  // new line
        }
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.