こんにちは。ECF Tech ブログ担当 Michiharu.Tです。
Javaプログラミング向け練習問題、今回のテーマは配列です。たくさんのデータを扱うプログラムでは配列は欠かせない要素です。また、配列の扱いはループをいかに使えるかがカギとなってきます。ぜひJavaの学習にお役立てください。 一般的なJavaの学習順序に沿ったテーマの一覧(※随時追加)は、こちらのリンクよりご確認頂けます。Javaプログラミング
Javaのトピックスです。主に初心者向けにプログラミング学習ネタを提供していきます。
解説動画
2023/01/27 解説動画を掲載しました。
問題編
Q001
問題
- forループを使って、配列arrayの内容を実行結果のとおりに表示してください。
提供コード
public class Quiz001 { public static void main(String[] args) { int[] array = { 1, 2, 3, 4, 5 }; //ここにプログラムを書きます。 } }
実行結果
1 2 3 4 5
import java.util.Scanner; public class Quiz001 { public static void main(String[] args) { int[] array = { 1, 2, 3, 4, 5 }; for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } } }
Q002
問題
- forループを使って、配列arrayの各要素の値を2倍にして表示してください。
提供コード
public class Quiz002 { public static void main(String[] args) { int[] array = { 1, 2, 3, 4, 5 }; //ここにプログラムを書きます。 for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } } }
実行結果
2 4 6 8 10
public class Quiz002 { public static void main(String[] args) { int[] array = { 1, 2, 3, 4, 5 }; for (int i = 0; i < array.length; i++) { array[i] *= 2; } for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } } }
Q003
問題
配列aの各値と配列bの各値の合計を、配列cの各要素に代入する プログラムを作成してください。
例えば、
配列aの0番目にある1
と配列bの0番目にある6
を足した7
が
配列cの0番目に入ります。
提供コード
public class Quiz003{ public static void main(String[] args) { int[] a = { 1, 2, 3, 4, 5 }; int[] b = { 6, 7, 8, 9, 10 }; int[] c = new int[5]; //ここにプログラムを書きます for (int i = 0; i < c.length; i++) { System.out.println(c[i]); } } }
実行結果
7 9 11 13 15
public class Quiz003{ public static void main(String[] args) { int[] a = { 1, 2, 3, 4, 5 }; int[] b = { 6, 7, 8, 9, 10 }; int[] c = new int[5]; for (int i = 0; i < a.length; i++) { c[i] = a[i] + b[i]; } for (int i = 0; i < c.length; i++) { System.out.println(c[i]); } } }
Q004
問題
配列arrayのもつ二次元配列を、二重ループを使って表示してください。
提供コード
public class Quiz004 { public static void main(String[] args) { int[][] array = { { 1, 8, 12, 17, 20 }, { 2, 5, 11, 13, 18 }, { 4, 6, 9, 19, 21 } }; //ここからプログラムを書きます。 } }
実行結果
1 8 12 17 20 2 5 11 13 18 4 6 9 19 21
public class Quiz004 { public static void main(String[] args) { int[][] array = { { 1, 8, 12, 17, 20 }, { 2, 5, 11, 13, 18 }, { 4, 6, 9, 19, 21 } }; for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { System.out.print(array[i][j] + " "); } System.out.println(); } } }
Q005
問題
配列scoreの内容を実行結果のとおりに表示します。
- 1回目は配列の内容を順番に表示します。
- 2回目は得点の多い順に表示します。配列rankの値を上手く使います。
※配列rankにはscore内で高い得点が入っている要素順に値が並んでいます。
例えば
rankの最初には
1
が入っています。これは配列scoreの1番目 に一番高い得点90
が入っていることを表しています。
提供コード
public class Quiz005 { public static void main(String[] args) { int[] score = { 45, 90, 75, 60, 80 }; int[] rank = { 1, 4, 2, 3, 0 }; System.out.println("----- 出席番号順 -----"); //出席番号順の表示 for (int i = 0; i < score.length; i++) { //ここにプログラムを書きます } System.out.println("----- 得点順 -----"); //得点の高い順に表示 for (int i = 0; i < score.length; i++){ //ここにプログラムを書きます } } }
実行結果
----- 出席番号順 ----- 1番:45点 2番:90点 3番:75点 4番:60点 5番:80点 ----- 得点順 ----- 1位:90点 2位:80点 3位:75点 4位:60点 5位:45点
public class Quiz005 { public static void main(String[] args) { int[] score = { 45, 90, 75, 60, 80 }; int[] rank = { 1, 4, 2, 3, 0 }; System.out.println("----- 出席番号順 -----"); //出席番号順の表示 for (int i = 0; i < score.length; i++) { System.out.println((i + 1) + "番:" + score[i] + "点"); } System.out.println("----- 得点順 -----"); //得点の高い順に表示 for (int i = 0; i < score.length; i++){ System.out.println((i+1) + "位:" + score[rank[i]] + "点"); } } }
おわりに
いかがでしたでしょうか。ループや配列の動きを理解するには、プログラムの流れを丁寧に追いかける作業(トレース)が重要です。必要に応じて値を変えてみたり、`System.out.println`を使って途中途中の値を表示してみたりしながら、動きをつかんでみてください。合同会社イー・シー・エフでは、子ども向けプログラミングなどの教育講座を実施しています。プログラミング教室の案内や教育教材の情報、また関連するご相談・問い合わせにつきましては下記よりご確認ください。
ECFエデュケーション