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

記事上広告

ループ文と配列の練習問題

配列とループ文の練習問題記事の解答及び解説記事です。

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

【Java】配列 練習問題

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

プログラム 解答例

実行結果

C:\work>javac Exam14.java
C:\work>java Exam14
日曜日は英語ではSun.です
月曜日は英語ではMon.です
火曜日は英語ではTue.です
水曜日は英語ではWed.です
木曜日は英語ではThu.です
金曜日は英語ではFri.です
土曜日は英語ではSat.です

配列 練習問題の解説

ポイント1 配列の定義(初期化子)

今回のプログラムでは配列は2つともString型の為、データは””で囲まれています。

ポイント2 forのループ処理

「配列名.length」の記述を行うと、配列内の要素数を取得できます。代わりに数値で7を記述しても問題ありませんが、配列の要素数分ループを回す場合は「配列名.length」の方が配列の便利です(要素数の変更があった場合に数値を変更しなくて済むため)。

【Java】配列 練習問題

2018-07-20 追加

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

プログラム 解答例

実行結果

C:\work>javac Exam1401.java

C:\work>java Exam1401
配列内の最も小さい数値は「3」です

配列 練習問題の解説

ポイント1 最小値を検索するための準備

配列内のデータを比較するために、配列の最初(0番目)をmin変数に代入しています。

ポイント2 最小値を検索する

配列の1番目からループを回すためにiの初期値は1となっています。配列分ループを回し、以下のようにループが実行されます。

ループ1回目:if(min > numbers[1])

min(配列0番目)のデータと配列1番目のデータを比較して、minの方が大きければminに1番目のデータを代入します。

ループ2回目:if(min > numbers[2])

minのデータと配列2番目のデータを比較して、minの方が大きければminに小さい方のデータを代入します。

ループ3回目:if(min > numbers[3])

minのデータと配列3番目のデータを比較して、minの方が大きければminに小さい方のデータを代入します。

以下繰り返し…

つまり、一つずつ配列内のデータを比較し、小さい方のデータをmin(minが大きければ小さいデータを代入する)に代入して最小値としています。

追加

Exam1401.java」を修正して最大値の表示も行えるように変更してください。最大値はmaxという変数内に格納し表示してください。(表示は実行結果参照)

プログラム 解答例

実行結果

C:\work>javac Exam1401.java

C:\work>java Exam1401
配列内の最も小さい数値は「3」です
配列内の最も大きい数値は「68」です

配列 練習問題の解説

ポイント1 最大値を検索するための準備

配列内のデータを比較するために、配列の最初(0番目)をmax変数に代入しています。

ポイント2 最大値を検索する

最小値の検索と同じようにループ文内にifで条件を指定します。最小値とは逆でmaxが小さい場合にmaxに値を代入しています。

【Java】配列 練習問題

2018-07-20 追加

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

プログラム 解答例

実行結果

C:\work>javac Exam1402.java

C:\work>java Exam1402
配列内の偶数は以下の数値です
32
82
34
16

配列 練習問題の解説

ポイント 偶数かどうかをチェックする

条件は「numbers[i] % 2 == 0」となっています。

  1. 配列内のデータと2で剰余算を行い(numbers[i] % 2)、余りを求めます。
  2. 余りが0かどうかをチェックし、(1の結果 == 0)0の場合にtrueとなり、出力を行います。

ちなみに「%(算術演算)」と「==(比較演算)」は「%(算術演算)」の方が先に演算が行われます。

追加

Exam1402.java」を修正して奇数の表示も行えるように変更してください。(表示は実行結果参照)

プログラム 解答例

実行結果

C:\work>javac Exam1402.java

C:\work>java Exam1402
配列内の偶数は以下の数値です
32
82
34
16
配列内の奇数は以下の数値です
79
35
25
77
61
39

配列 練習問題の解説

ポイント 奇数かどうかをチェックする

条件は「numbers[i] % 2 != 0」となっています。

  1. 配列内のデータと2で剰余算を行い(numbers[i] % 2)、余りを求めます。
  2. 余りが0ではないかをチェックし、(1の結果 != 0)0ではない場合にtrueとなり、出力を行います。

【Java】ループ文と二次元配列 練習問題

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

実行結果

C:\work>javac Exam15.java

C:\work>java Exam15
日曜日は英語ではSun.です
月曜日は英語ではMon.です
火曜日は英語ではTue.です
水曜日は英語ではWed.です
木曜日は英語ではThu.です
金曜日は英語ではFri.です
土曜日は英語ではSat.です

配列 練習問題の解説

ポイント1 二次元配列

week配列のイメージは下の通りです。

week配列のイメージ図

ポイント2 ループ文と配列

for文のカウンタ変数と2次元配列の添え字を以下のように対応させています。

3回目以降も繰り返し行い、配列の右側添え字が6になるまでループを行います。

【Java】制御構文と二次元配列 練習問題

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

実行結果

C:\work>javac Exam16.java

C:\work>java Exam16
Purple

※うまくプログラミングできたらspecified_colorの色を変更後、確認してみましょう。

配列 練習問題の解説

ポイント 文字列比較

文字列は「文字列.equals(文字列)」で比較を行います。

参加 ブログランキング

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


Javaランキング

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

シェアする

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

フォローする

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