ループ文の練習問題[解答及び解説]

記事上広告

ループ文の練習問題

ループ文(3-5)の練習問題記事の解答及び解説記事です。

プログラムの解答はあくまでも一例です。問題によっては違う記述方法もあります。

【Java】for 練習問題 サンプルプログラム

以下のプログラム内にはコメントで指示がありますので、コメントの下にプログラミングを行ってください。workフォルダ内に「Exam10.java」で保存してください。
保存後、コンパイルおよび実行を行ってください。

プログラム 解答例

実行結果

c:\work>javac Exam10.java

C:\work>java Exam10
1です
2です
3です
4です
5です
~中略~
98です
99です

for 練習問題の解説

ポイント forでのループ指定方法

forの構文は基本的に「for(初期化の式 ; 条件 ; 増減式 )」で構成されます。1から99までの場合は、カウンタ変数であるiを1で初期化し、99までループするように条件を記述します。

初期化の式 int i = 1;
条件 i < 100 ;

条件は「i <= 99」としてループを回すこともできます。

【Java】while 練習問題 サンプルプログラム

以下のプログラム内にはコメントで指示がありますので、コメントの下にプログラミングを行ってください。workフォルダ内に「Exam11.java」で保存してください。
保存後、コンパイルおよび実行を行ってください。

プログラム 解答例

実行結果

C:\work>javac Exam11.java

C:\work>java Exam11
合計は5050です

while 練習問題の解説

ポイント1 whileでのループ指定方法

whileの構文は「while(条件)」となっています。forと違い、初期化はwhileの前で行っており、条件のみの記述となります。また増減式もwhileブロック内部で「count++;」を記述しています。また、100までループを行うため、100以下という条件となっています。

ポイント2 変数内のデータを加算する

今回は、数値を加算して保存するための変数resultを用意しています。「result += count」は「result = result + count」に置き換えても同じように動作します。

ループ前のcountは1、resultは0です。resultの計算式およびcount++後のcountの値は以下の表のようになります。

状態 result += count count++
ループ1回目 result = 0 + 1 2
ループ2回目 result = 1 + 2 3
ループ3回目 result = 3 + 3 4
ループ4回目 result = 6 + 4 5
ループ5回目 result = 10 + 5 6
途中省略
ループ100回目 result = 4950 + 100 101

countが101の時点で条件に合致しなくなりループが終了します。つまり、ループ終了時点で「resultは5050」「countは101」となります。

【Java】ループ文 練習問題 サンプルプログラム

以下の実行結果になるようなループ文(for、while等は問わない)を作成してください。workフォルダ内に「Exam12.java」で保存してください。
保存後、コンパイルおよび実行を行ってください。

プログラム 解答例

実行結果

C:\work>javac Exam12.java
C:\work>java Exam12
2 4 8 16 32 64

ループ文 練習問題の解説

ポイント1 実行結果の規則性

今回の練習問題の結果は[2 4 8 16 32 64]と2倍ずつ値が増えています。

ポイント2 ループ指定方法

resultと変数を用意し2で初期化を行います。

条件は100以下とし、64の2倍である128までは表示されないようにしています。つまり条件は[result < 128]などでも構いません。

最後に、増減式で[result *= 2]とし、resultに2をかけることで以下のようにresultの数値は変わります。

状態 result *= 2 計算後のresultの値
ループ1回目 result = 2 * 2 4
ループ2回目 result = 4 * 2 8
ループ3回目 result = 8 * 2 16
ループ4回目 result = 16 * 2 32
ループ5回目 result = 32 * 2 64
ループ6回目 result = 64 * 2 128

resultが128になった時点で100を超えるためループ終了となります。128は表示されません。

【Java】ループ文 練習問題

以下の実行結果になるようなループ文(for、while等は問わない)を作成してください。workフォルダ内に「Exam13.java」で保存してください。
保存後、コンパイルおよび実行を行ってください。

プログラム 解答例

実行結果

C:\work>javac Exam13.java
C:\work>java Exam13
100 50 25 12 6 3 1

ループ文 練習問題の解説

ポイント1 実行結果の規則性

今回の練習問題の結果は[100 50 25 12 6 3 1]と値が2分の1ずつ減っています。なお25の半分は12.5ですが、今回はintを利用している為全て整数となっています。

ポイント2 ループ指定方法

resultと変数を用意し100で初期化を行います。

条件は1以上とし、1より小さい数値が表示されないようにしています。つまり条件は[result > 0]などでも構いません。

最後に、増減式で[result /= 2]とし、resultを2で割ることで以下のようにresultの数値は変わります。

状態 result /= 2 計算後のresultの値
ループ1回目 result = 100 / 2 50
ループ2回目 result = 50 / 2 25
ループ3回目 result = 25 / 2 12
ループ4回目 result = 12 / 2 6
ループ5回目 result = 6 / 2 3
ループ6回目 result = 3 / 2 1
ループ7回目 result = 1 / 2 0

※int同士の計算の為、整数の計算結果となる

resultが0になった時点で1より小さくなった為、ループ終了となります。0は表示されません。

参加 ブログランキング

記事頑張って書いたかもねー?と思う方は下を押してもらえるといいかなーなんて
にほんブログ村 IT技術ブログへ
にほんブログ村


Javaランキング

目次へのアクセス
スポンサーリンク
レクタングル

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル