我是 Java 初学者,我的编程老师给我们布置了一项作业,要求我们使用“|”制作一个由小方块组成的网格。和 ”_”。
我知道这可能看起来很愚蠢,但这是我能做的最好的事情。我设法制作了列,但现在我不知道如何制作行。
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();
}
}
到目前为止我已经学会了如何使用条件和循环,而这次作业是关于使用方法的。
我剧透了,所以首先你可以尝试自己解决它。
如果你仔细观察,你会看到多少行?
_ _
|_|_|
|_|_|
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 对象上使用重复方法,该方法使您无需循环即可重复该字符串。
这应该可以达到你想要的效果。使用
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
}
}
}