0

私はこれをしばらく調査してきましたが、このループが終了しない理由を理解できないようです。

public class Test{
    public static void main (String [] args){
        for (int i = 11; i > 10; i++){
            System.out.println(i);}
    }
}

変数は、ループが終了するための要件を満たす値で初期化されるため、出力がまったくないはずではありませんか?
これが初心者の質問である場合は申し訳ありませんが、検索しても答えが見つからないようです(または、検索時に質問を適切に表現していないだけかもしれません)
。ctrl + cを押すまで、ループは実行され続けます。
前もって感謝します。

4

3 に答える 3

1

forループ内の 2 番目のコード フラグメント(ここではi > 10) は、 のboolean場合trueにループを再度実行させる式です。それは明らかにtrue常にです(整数オーバーフローまで)。

于 2013-04-29T22:27:35.290 に答える
1

あなたのループはで始まり、各反復が実行されるi = 11間、継続しますi > 10 == truei++

今は終わらないのがわかりますか?

于 2013-04-29T22:27:55.783 に答える
1

ループは決して終了しません。終了条件は、ループが のときi <= 10に停止することを示しi = 11ており、開始時に条件が に評価さ11 > 10 == trueれ、無限ループに入ります。

まあ、厳密にインデックスオーバーフローで終了するのですが、そこまで時間がかかります。

于 2013-04-29T22:28:14.903 に答える