Java 倒三角形
我是Java的初学者,不知道如何打印倒三角形的数字。每行数字的值应减少1。例如:行数:Java 倒三角形,java,for-loop,nested-loops,ascii-art,Java,For Loop,Nested Loops,Ascii Art,我是Java的初学者,不知道如何打印倒三角形的数字。每行数字的值应减少1。例如:行数:6 打印: 666666 55555 4444 333 22 1 到目前为止,这是我想到的;(int nr是用户扫描输入) 对于(int i=1;i您的问题是您正在更改nr,请尝试: int-original\u nr=nr; 对于(int i=1;i您不能减少 nr>代码>,仍然使用它作为循环中的上限。实际上,您应该考虑 NR < /代码>为不可变< /强> 。 相反,将外循环从nr计数改为1,将内循环从1
6
打印:
666666
55555
4444
333
22
1
到目前为止,这是我想到的;(int nr
是用户扫描输入)
对于(int i=1;i您的问题是您正在更改nr
,请尝试:
int-original\u nr=nr;
对于(int i=1;i您不能减少<代码> nr>代码>,仍然使用它作为循环中的上限。实际上,您应该考虑<代码> NR < /代码>为<强>不可变< /强> 。
相反,将外循环从nr
计数改为1
,将内循环从1
计数改为i
,并打印i
的值
for (int i = nr; i > 0; i--) {
for (int j = 0; j < i; j++) {
System.out.print(i);
}
System.out.println();
}
for(int i=nr;i>0;i--){
对于(int j=0;j
你是对的,你需要写一个循环来为每一个数字打印一行,从nr开始,递减1直到0。但是你也必须在每一行打印一个可变数量的数字。要做到这一点,可以使用一个嵌套的循环来打印所需的次数
由于从nr开始打印,直到达到1为止,因此可以尝试编写递减而不是递增的外部循环。然后使用嵌套循环打印所需次数。例如:
for (int i = nr; i > 0; i--) {
for (int j = 0; j < i; j++) {
System.out.print(i);
}
System.out.println();
}
for(int i=nr;i>0;i--){
对于(int j=0;j
在这种情况下,您可以使用一个while循环和两个递减变量:
i
-行数-从6
到1
j
-行中的重复次数-从i
到1
:
inti=6,j=i;
而(i>0){
如果(j>0){
//打印“i”元素“j”次
系统输出打印(一);
--j;
}否则{
//开行
System.out.println();
j=-i;
}
}
输出:
666666
55555
4444
333
22
1
另请参见:谢谢!这可能是一个愚蠢的问题,但如果int i开始时为0,并减少-1,为什么不(i)打印为-1,-2等?int i开始时为nr,而不是0。它会减少,直到for循环中的条件i>0为false。当我从1减到0时,该条件变为false,循环中断。