我必须编写一个程序,它接受一个命令行参数n并打印出一个带有交替空格和星号的模式(如下所示)。至少使用两个嵌套for循环和一个构造函数来实现模式(下面显示的图像如下所示)。
这是我已经尝试过的代码,没有运气。我理解如何使用单个for循环执行此操作,但不是嵌套。我也不确定如何将构造函数与该程序集成。
This is how the image should look: * * * *
* * * *
* * * *
* * * *
public class Box {
public static void main(String[] args) {
for (int i=1; i<2; i++) {
System.out.println("* " + "* " + "* " + "* ");
for (int j=0; j<i; j++) {
System.out.print(" *" + " *" + " *" + " *");
}
}
}
}
答案 0 :(得分:2)
我想这是一个家庭作业问题,所以我不会给你任何代码:)你的问题是你用外循环和内循环打印出整行。使用外部循环绘制每一行并使用内部循环在每行中绘制每个星号。因此,外部循环用于行,内部循环用于列。
答案 1 :(得分:1)
轻微修改波希米亚人的答案。外部for循环负责打印行。内部循环在每行上打印重复的字符。构造函数只需设置n
字段,该字段控制您打印的行数。 main方法创建一个新对象并调用其唯一的方法。
public class Box {
private static int n;
public Box(int n){
this.n = n;
}
public static void doMagic() {
for (int row = 0; row < n; row++) {
if(row%2==1)
System.out.print(" ");
for (int col = 0; col < n; col++) {
System.out.print("* ");
}
System.out.println();
}
}
public static void main(String[] args) {
new Box(4).doMagic();
}
}
答案 2 :(得分:0)
试试这个:
public static void main(String[] args) {
for (int row = 0; row < 4; row++) {
// Not sure if you really meant to indent odd rows. if not, remove if block
if (row % 2 == 1) {
System.out.print(" ");
}
for (int col = 0; col < 4; col++) {
System.out.print("* ");
}
System.out.println();
}
}
输出:
* * * *
* * * *
* * * *
* * * *
答案 3 :(得分:0)
在外部for循环中,您可以控制要打印的行数,并选择是否打印“*”或“*”。在内部循环中,您将打印所选字符串的次数与您拥有的列数相同。