嵌套for循环为三角形

时间:2013-05-10 08:18:04

标签: java loops for-loop nested

我是java&的初学者我真的需要这个答案。 我一直试图按照这个顺序创建一个三角形:

1
21
321
4321
54321

即使我的语法正确,我也经历过非终止循环的逻辑错误。

这是我正在尝试修复的程序:

for(i=1;i>=1;i++)
    {
        for(j=i;j<=i;j=j-1)
        {
            System.out.print(j);        
        }
        System.out.println(); 
    }

真的很感激帮助。

5 个答案:

答案 0 :(得分:2)

由于这个

,你得到非终止循环
for(i=1;i>=1;i++)

代码表示,如果i大于或等于1(i>=1),您希望循环正文,并且此i值总是递增1i++)对于每个循环,因此它总是具有大于1的值,并且此条件对于循环代码始终是正确的。所以你必须纠正循环语句。

答案 1 :(得分:2)

我不确定我是否完全理解你的问题但是 以下代码为我创建了一个漂亮的三角形。

int i,j;
for(i = 1; i>= 1 && i < 10; i++)
{
    for(j = i; j <= i && j > 0; j = j - 1)
    {
        System.out.print(j);        
    }
    System.out.println(); 
}

答案 2 :(得分:1)

for(i=1;i>=1;i++)在此不正确,因为1上的增量将始终导致数字大于1,因此循环将仅在i = (2^31 -1)次迭代后结束。因此,对于给定的输出,您的循环应如下所示:

for(int i=1;i<=5;i++)
    {
        for(int j=i;j>=1;j--)
        {
            System.out.print(j);        
        }
        System.out.println(); 
    }

答案 3 :(得分:0)

贯穿循环

for(j=i;j<=i;j=j-1) (assume i is 2 for the example)

j = 2,是2&lt; = 2,是:运行循环
j = j-1(j = 2-1 = 1)

j = 1,是1&lt; = 2,是:运行循环
j = j-1(j = 1-1 = 0)

j = 0,是0 <= 2,是:运行循环
j = j-1(j = 0-1 = -1)

j = -1,是-1&lt; = 2,是:运行循环
j = j-1(j = -1-1 = -2)

j越来越小,所以它总是小于2。

我有完全相反的问题,它总是越来越大,所以它总是大于1。

答案 4 :(得分:0)

public static void main(String[] args) 
{
    for(int x=1;x<=5;x++)
    {
        for(int j=x;j>=1;j--) 
        {
            System.out.print(j);
        }

        System.out.println();
    }
}