for(int i=0;i<=3;i++)
{
for(int j=1;j<=2*i-1;j++)
System.out.println(i);
}
i
の価値を理解していないインクリメントforloopが、それは1
にインクリメントされます。 これは私がコード上で明確でないところです。誰もこれを説明できますか?は、最初のループはまだ<code>0</code>する必要があります後
for(int i=0;i<=3;i++)
{
for(int j=1;j<=2*i-1;j++)
System.out.println(i);
}
i
の価値を理解していないインクリメントforloopが、それは1
にインクリメントされます。 これは私がコード上で明確でないところです。誰もこれを説明できますか?は、最初のループはまだ<code>0</code>する必要があります後
最初の反復
for(int i=0;i<=3;i++) i = 0,true,
{
for(int j=1;j<=2*i-1;j++) j=1 , j<=-1 which is false . so it is skipping
System.out.println(i); prints nothing
}
2回目の反復
for(int i=0;i<=3;i++) i = 1,true,
{
for(int j=1;j<=2*i-1;j++) j=1 , j<=1 which is true. so now it runs loop inside
System.out.println(i); so now prints 1
}
あなたはbeginnertoループしている場合。常に描くtrace table dry runs
i
が0
の場合、内側ループ(j
の値に基づくもの)は実行されません。条件はj<=-1
と評価されるので、ループは入力されず、System.out.println
ステートメントは決して実行されません。第2のループにおいてのみ、i
が1
である場合、第2のループは実行の機会を有する。
いいえ、それを得ました。ありがとう、 – ABAJAVa
"最初のループの後のiの値はまだ0になるはずです"なぜそう思うのですか? – MikeCAT
2番目のループで条件を確認してください。 –
はい、私はループの前にprintステートメントを置くので、値0が返ってきます。 – ABAJAVa