我是Java编程语言的新手。
我要求用嵌套循环方法来做这样的事情:
。
"Masukan Angka“在印尼语中是”输入数字“。因此,如果我们输入9,它将打印出9行*,并且每行*的数量都会减少。
我试着用嵌套循环,这是我做的:
代码是:
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
System.out.print("Input your number: ");
int x = in.nextInt();
for (int y = x; y > 0; y--) {
for (int z = 0; z < y; z++)
System.out.print("*");
System.out.println();
}
}
我如何才能使它在第2-7行中不是用*填充,而是像第一张图片中的例子一样填充空格?
提前谢谢。
发布于 2017-10-08 00:30:53
在@Ringuerel解决方案上稍微扩展一下:
for (int y = x; y > 0; y--) {
for (int z = 0; z < y; z++) {
// If it's first or last or first row print "*"
if( z == 0 || z == y-1 || y == x) {
System.out.print("*");
}
else {
// Otherwise print " "
System.out.print(" ");
}
}
System.out.println();
}
发布于 2017-10-08 00:24:46
在第二个for之后,在打印语句之前添加这个,if( z == 0 || z == y-1 )
,对不起,我正在使用我的电话
发布于 2017-10-08 00:33:34
public static void main(String[] args) {
int amount = 10;
String c = "*";
String message = "";
for (int i = 0; i < amount; i++) {
message += "*";
for (int j = 1; j < amount - i; j++) {
message += c;
}
message += "*";
c = " ";
System.out.println(message);
message = "";
}
System.out.println("*");
}
如果你愿意,你可以试试这个。我还没有测试过它,但我相当确定它会工作。
https://stackoverflow.com/questions/46622357
复制相似问题