2017-08-09 5 views
-15

私はクラスで行ったdo-whileループの質問に問題があります。ループは次のとおりです。ループの誤解について

double m = 92.801; 
int j = 0; 

do { 
    j += 2; 
    if (j > -100) { 
     continue; 
    } 

    m += 3; 
} while (j < 6); 

System.out.println(m); 

この質問では、私の答えは95.801でした。しかし、私がIDEでチェックインしたときの答えは92.801でした。誰かがなぜ私に説明することができますか?

+4

'if(){' - ここでの条件は何ですか? –

+5

あなたの期待した結果と実際の結果は同じようです。それはタイプミスですか? –

+3

結果が期待通りだったら、なぜあなたがそれを期待したのか説明できないはずですか? – David

答えて

0

(j> -100)は常に真であるため、答えは92.801になります。 whileループ条件は最初からfalseです。 do whileループは常に条件に関係なく1回実行されますが、if文がtrueの場合はcontinueが呼び出され、次の繰り返しに進む - while条件がfalseのため実行されません。プログラムは決して到達しません(m + = 3)。

これは意味があると思います。

-2

if条件がTrueの場合、出力は92.801になります。

if条件が真の場合の場合、出力は95.801になります。

if条件がTrueの場合、出力は98.801になります。

if条件がTrueの場合、出力は101.801になります。

ステートメントとの場合はステートメントの場合はすべてがになります。

+0

これはどのように質問に答えているのか分かりません。それがはっきりしていないので、答えを提供することはまったく困難です。 – tnw

+0

はい、そのタイプミス申し訳ありません。 「私の答えは95.801だが、正解は92.801となるはず」 – GamingWithHan

+0

私は自分の質問を改訂しました。 – GamingWithHan