0

私は完全な初心者で、このコード スニペットの背後にあるロジックをたどろうとしています。

int x = 12;
do {
    for (int w=9; w<x; w++)
        System.out.print(w+” ”);
    --x;
    System.out.println(x);
}while (x>7);

実行すると、答えは次のとおりです。

9 10 11 11
9 10 10
9 9
8
7

誰かが簡単な方法でコードを段階的に読む方法を説明できれば、私はとても幸せです!

4

3 に答える 3

3

int x = 12;と呼ばれる新しいローカル変数を宣言するx

do {新しいdo...whileループを開始します

for (int w=9; w<x; w++)variable の値が variable の値より小さくなるまで反復する新しいforループを開始します。このループ変数の各反復の後、その値が増加します (by )。変数の初期値は( ) です。wxww++w9int w=9

System.out.print(w+” ”);これは、変数の現在の値にw加えて、その後に1つの空白をコンソールに出力します

--x;これはx変数の値を減らします。いわゆるプレフィックス版の動作です--

System.out.println(x);変数の値をコンソールに出力xし、キャリッジを返します

}forループ コード ブロックの終わり(Chris のおかげで修正されました)

} while (x>7);ループが終了する条件付きのwhileコード ブロックの終わり: 変数の値xがそれ以上になるまで、7ループが実行されます。

UPD:出力結果をより具体的に説明する:

1) の 1 回目の反復do loopx == 12: _

内部forループの繰り返し:

1.1) w == 9, 9 < 12=>9コンソールへの出力

1.2) w++=> w == 10, =>コンソールへの10 < 12出力,10

1.3) w++=> w == 11, =>コンソールへの11 < 12出力,11

1.4) w++=> w == 12, => はループを12 == 12終了しますfor

2)forループ終了。--x=> x == 11、コンソールに出力11してキャリッジを返すので、行があります9 10 11 11

do ... while3)ループの新しい繰り返しを開始し、7x == 11になるまで繰り返しますx

于 2013-01-14T11:09:36.640 に答える
0

まず第一に、スニペットを適切にフォーマットすると、理解するのに役立ちます:)

int x = 12;
do {
    for (int w=9; w<x; w++)
        System.out.print(w+” ”);
    --x;
    System.out.println(x);
} while (x>7);

段階的に説明するのは難しいので、デバッガーを使用して実行することをお勧めします。しかし、言い換えれば、プログラムは次のとおりです。

  1. 内部 'for' ループを持つ do-while ループがあり、x をデクリメントして出力します
  2. for ループは w 変数で動作し、出力します。条件は x 値に依存します (条件がどのように機能するかなどは理解できると思います)。
  3. for ループでは、do-while ループの「println」とは対照的に、「print」メソッドが使用されます。そのため、w の値は 1 行に出力されます
于 2013-01-14T11:12:20.150 に答える