0

私は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(); 
    }

これについては、本当に助けていただければ幸いです。

4

5 に答える 5

2

これにより、非終了ループが発生します

for(i=1;i>=1;i++)

iこのコードは、 1 より大きいか等しい場合に本体をループすることを意味し( i>=1)、この値はループごとに常に( )iずつインクリメントされるため、常により大きい値を持ち、この条件はループ コードに対して常に正しいです。したがって、ループ文を修正する必要があります。1i++1

于 2013-05-10T08:21:44.733 に答える
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(); 
    }
于 2013-05-10T08:25:03.520 に答える
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();
    }
}
于 2014-12-11T11:28:36.037 に答える