回答受付が終了しました

ID非公開

2022/6/27 3:35

22回答

わかる方がいらっしゃいましたら、このコードの答えを解説して頂きたいです。 public static void main(String[] args){

Java | プログラミング140閲覧xmlns="http://www.w3.org/2000/svg">25

回答(2件)

0

まず, このfor文の書式が間違っていると思われますので, 以下のように(勝手に)解釈して解説します: for(int i = 1; i <= 10;){ // )の前に; を追加 if( i <= 3){ i++; } else { i *= 2; } System.out.print( i + " "); } ----------- for(int i = 1; i <= 10;){ では, iの値が10になるまで中身がループされます. また, この文では i++ や, i-- のように, 1ループごとにiの中身を変える文が定義されていない(省略されている)ため, iの変わり方は予測できません. ----------------------------------------------- if( i <= 3){ i++; } では, i が3以下のときにiを1増やします. この条件のみですと, 出力される値は, 2, 3, 4, 4 , 4...(無限ループ) ということが予想できます. ---------------------------------------------- else { i *= 2; } では, iが3より大きい(4以上の)場合, iを2倍します. この2つの条件を考慮すると, 出力される値は, 2,3, 4, 8, 16 となることがわかります. ---------------------------------------------- System.out.print( i + " "); i をプリントして終わりです. ---------------------------------------------- 以下for内のiの変わり方です: ループ数. iの値, iの変化, 出力される値 1. 1, +1, 2 2. 2, +1, 3 3. 3, +1, 4 4. 4, *2, 8 5. 8, *2, 16 ---iが10を超えたので終了---

1

エラーで動かないかと思います。

1人がナイス!しています

ID非公開

質問者2022/6/27 12:18

ありがとうございます。 もしよろしければ、なぜなのか教えてもらえないでしょうか?