2

私は最近Javaをいじっていて、問題に遭遇しました:

System.out.println()for ループを挿入または内部に入れるSystem.out.print()と、コンソールに出力がありません。

例えば:

package experimental;

public class Main {
    public static void main(String args[]) {
        recur();
    }

    public static void recur() {
        for(int x = 0; x == 10; x++) {
            for(int y = 0; y == 10; y++) {
                System.out.print(x + "-" + y + " ");
            }
        }
    }
}

出力:

*crickets*
4

7 に答える 7

3

あなたの問題は、 for ループの条件にあります。それは言います:

x = 0 で開始し、x が 10 の間ループする

これは正しくないため、ループはすぐに終了します。

次のように置き換える必要があります。

for (int x = 0; x < 10; x++)

(10回ループしたいと仮定します)

于 2012-08-08T23:23:42.737 に答える
2

これらのforループは決してループしません。

終了条件trueである限りループします。終了条件としてx == 10、 、y == 10. を から に初期化xするyため0、これらの条件が true になることはなく、ループはノーオペレーションです。

たとえば、次のようにします。for (int x = 0; x < 10; x++)

于 2012-08-08T23:23:17.217 に答える
2
for(int x = 0; x == 10; x++) {
    for(int y = 0; y == 10; y++) {
        System.out.print(x + "-" + y + " ");
    }
}

条件が失敗し、x == 10ループが壊れます。他のループ条件と同じです。

于 2012-08-08T23:23:22.343 に答える
1

x==10ループを開始する前に条件が既に false であるため、コードが for ループの本体に到達することはありません。x != 10代わりに書くべきだと思います。同じことが内側のループにも当てはまります。

于 2012-08-08T23:27:20.437 に答える
0

誰もがすでにあなたの質問に答えているので、デバッグのヒントをいくつか追加したいと思います。まず、NetBeans や Eclipse などの IDE を使用することをお勧めします。これらの両方のデバッガーを使用すると、コードを 1 行ずつ実行して実行方法を確認できます。そうすることで、for ループが完全にスキップされていることにすぐに気付くでしょう。これを行うことができない、またはしたくない場合。次善の策はSystem.out.println()、コードに SOP の ( ) を追加することです。"Here"コード内のどこにいるかを知らせるような単純なメッセージであっても、この追加の出力はロジックのエラーを追跡するのに役立ちます。

于 2012-08-08T23:33:18.700 に答える
0

使用できませんx == 10。比較は次のように表現する必要があります。

for(int x = 0; x <= 10; x++) {
   for(int y = 0; y <= 10; y++) {
     System.out.print(x + "-" + y + " ");
   }
}
于 2012-08-10T10:49:57.893 に答える