JAVAの初心者向け問題1-2:配列の平均値を計算しよう
この問題を解くために必要な知識:
コメントの書き方、変数と定数、基本データ型とプリミティブ型、四則演算と論理演算、入力と出力、配列、分岐処理(if、if~else、switch)、繰り返し処理(for、while、do~while
<<前の問題 | 問題集Top |
次の問題>> |
JAVAの文法「配列」とは
ここでは配列の意味や使い方を復習します。必要ない方はここをクリックして練習問題へ飛びましょう。
プログラミングを学び始めたとき、必ず出会うのが「配列(Array)」というデータ構造です。
配列は、複数の値を一つにまとめて管理するための便利な仕組みで、Javaでも非常によく使われます。
このページでは、Javaの配列について初心者でも分かりやすいように解説していきます。
配列とは?
配列は、同じ型(データタイプ)の複数のデータを一つにまとめて管理するための仕組みです。たとえば、数字や文字、文字列をまとめて管理したいときに便利です。
具体的には、次のような場面で役立ちます。
- 複数の数字を一つの変数で扱いたい場合
- 名前のリストを作りたい場合
配列を使うと、一つ一つの値に個別に変数を作成する必要がなくなり、コードがすっきりします。
配列の宣言と初期化
配列を使うためには、まず配列を「宣言」し、次に値を入れるために「初期化」します。Javaでの配列の宣言と初期化の基本的な方法を見てみましょう。
配列の宣言方法
配列を宣言するには、以下のように記述します。
int[] numbers;
このコードでは、int
型(整数型)の配列を宣言しています。ただし、まだ配列のサイズ(要素数)は決まっていません。
配列の初期化方法
配列を使うためには、サイズを指定して初期化する必要があります。例えば、5つの整数を格納できる配列を作る場合、次のように書きます。
numbers = new int[5];
また、配列を宣言と同時に初期化することもできます。
int[] numbers = new int[5];
さらに、初期値を直接指定することもできます。
int[] numbers = {10, 20, 30, 40, 50};
この例では、numbers
配列に5つの整数が初期値として格納されます。
配列の要素にアクセスする方法
配列の各要素には、インデックスと呼ばれる番号を使ってアクセスします。Javaの配列のインデックスは0から始まることに注意してください。
つまり、最初の要素は0
番目のインデックスにあり、2番目は1
番目のインデックスとなります。
例:配列の要素にアクセスする
int[] numbers = {10, 20, 30, 40, 50}; System.out.println(numbers[0]); // 10が表示される System.out.println(numbers[ 4]); // 50が表示される
このコードでは、numbers[0]
が10
、numbers[ 4]
が50
であることが確認できます。
配列のループ処理
配列を使うときによく利用されるのがループ処理です。for
ループやforeach
ループを使って、配列の全要素に簡単にアクセスできます。
for
ループを使った配列の処理
次の例では、for
ループを使って配列の全ての要素を表示しています。
int[] numbers = {10, 20, 30, 40, 50}; for (int i = 0; i < numbers.length; i++) { System.out.println(numbers[i]); }
ここでは、numbers.length
を使って配列の長さを取得し、各要素に順番にアクセスしています。
foreach
ループを使った配列の処理
Javaには、配列の全要素に簡単にアクセスできるforeach
ループもあります。
int[] numbers = {10, 20, 30, 40, 50}; for (int number : numbers) { System.out.println(number); }
この方法では、インデックスを気にせずに全ての要素を一つずつ処理できるため、簡潔にコードを書くことができます。
配列を使った簡単なプログラム例
ここで、配列を使って合計を計算する簡単なプログラムを見てみましょう。
public class ArrayExample { public static void main(String[] args) { int[] numbers = {10, 20, 30, 40, 50}; int sum = 0; // 配列の全要素をループして合計を計算 for (int number : numbers) { sum += number; } // 結果を表示 System.out.println("合計: " + sum); } }
このプログラムでは、numbers
配列の全ての要素をfor
ループで巡回し、各要素をsum
に加算しています。最終的に配列内の数字の合計が表示されます。
まとめ
配列は、Javaプログラミングにおいて非常に基本的で重要なデータ構造です。
複数のデータを一つの変数にまとめて管理でき、効率的なコードを書くことができます。
JAVA練習問題1-2_配列の平均値を計算しよう
5つの整数(10 , 20 , 30 , 40 , 50)を含む配列を作成し、それらの平均値を計算して出力するプログラムを作成してください。
この問題の要件
以下の要件に従ってプログラムを完成させてください。
- 配列
numbers
に10, 20, 30, 40, 50
を格納すること。 - 配列
numbers
の全要素の合計を計算し、その合計を使って平均値を求めること。 - 平均値は小数点以下も表示すること。
ただし、以下のような実行結果となること。
----- ↓出力される結果の例↓ -----
平均値: 30.0
----- ↑出力される結果の例↑ -----
この問題を解くヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
正解のコードは上から順に以下のような構成となっています。
1.AverageCalculatorクラスの定義
2.mainメソッドの定義
2-1. numbers配列の作成と初期化
2-1-1. 5つの整数を含む配列を作成
2-2. sum変数の初期化
2-3. forループによる配列の全要素の合計を計算
2-3-1. ループの開始と終了条件(配列の全要素を処理)
2-3-2. 各要素を合計に加算
2-4. 平均値の計算
2-4-1. 合計を要素数で割り平均値を計算
2-5. 平均値の出力
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
public class AverageCalculator { public static void main(String[] args) { int[] numbers = {10, 20, 30, 40, 50}; // 5つの整数を含む配列を作成 int sum = 0; // 合計を格納する変数を初期化 // 配列の全要素を順に足し合わせる for (int i = 0; i < numbers.length; i++) { ***ここに配列の各要素を合計に加算するコードを書いてください*** } // 平均値を計算(合計を要素数で割る) double average = ***ここに平均値を計算するコードを書いてください***; System.out.println("***ここに平均値を表示するコードを書いてください***"); // 平均値を出力 } }
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
解答例
この問題の一つの正解例とそのコードの解説を以下に示します。
正解コードの例
例えば以下のようなプログラムが考えられます。
********************
public class AverageCalculator { public static void main(String[] args) { int[] numbers = {10, 20, 30, 40, 50}; // 5つの整数を含む配列を作成 int sum = 0; // 合計を格納する変数を初期化 // 配列の全要素を順に足し合わせる for (int i = 0; i < numbers.length; i++) { sum += numbers[i]; } // 平均値を計算(合計を要素数で割る) double average = (double) sum / numbers.length; System.out.println("平均値: " + average); // 平均値を出力 } }
********************
コードの解説
このプログラムは、5つの整数が格納された配列を作成し、その平均値を計算して表示するものです。初心者向けに、各部分を分かりやすく説明していきます。
public class AverageCalculator
public class AverageCalculator {
この部分は、Javaのクラスを定義しています。AverageCalculator
という名前のクラスを作成し、クラスの中にメソッドや処理を記述します。
クラスはJavaプログラムの基本単位です。
public static void main(String[] args)
public static void main(String[] args) {
main
メソッドは、Javaプログラムが実行されるときに最初に呼び出されるメソッドです。
ここからプログラムが始まります。String[] args
はコマンドライン引数を受け取るためのものですが、今回は使いません。
配列の作成
int[] numbers = {10, 20, 30, 40, 50}; // 5つの整数を含む配列を作成
この行では、5つの整数を含む配列numbers
を作成しています。配列とは、同じ型のデータを複数まとめて管理できるデータ構造です。
ここではint
型(整数型)の配列を作り、{10, 20, 30, 40, 50}
のように、初期値を直接与えています。
配列の要素はインデックス(番号)を使ってアクセスします。Javaでは、インデックスは0から始まるため、numbers[0]
は10、numbers
は50です。
合計の初期化
int sum = 0; // 合計を格納する変数を初期化
この行では、配列の全ての要素を足し合わせるための変数sum
を作成し、最初に0
で初期化しています。後で配列の各要素をsum
に加えていきます。
配列の要素を足し合わせる
for (int i = 0; i < numbers.length; i++) { sum += numbers[i]; }
ここでは、for
ループを使って配列の全要素を順番に足し合わせています。
i = 0
:ループの開始条件。最初の要素(numbers[0]
)から処理を始めます。i < numbers.length
:配列の長さ(要素数)までループを回します。numbers.length
は5なので、インデックスが0から4までの要素を処理します。sum += numbers[i];
:配列の各要素をsum
に足し合わせます。例えば、numbers[0]
の値である10がsum
に加えられ、その後numbers
の20が加えられます。
平均値の計算
double average = (double) sum / numbers.length;
この行では、合計を配列の要素数で割って平均値を計算しています。sum
は整数なので、(double)
を使って小数に変換し、正確な平均値を計算します。
numbers.length
は配列の要素数であり、この場合は5です。
結果の表示
System.out.println("平均値: " + average); // 平均値を出力
最後に、System.out.println
で計算した平均値を画面に表示します。"平均値: "
の部分は表示されるメッセージで、その後ろに計算された平均値が続きます。
まとめ
このプログラムでは、配列を使って複数の整数を一つにまとめ、ループで全ての要素を足し合わせた後に、その合計を元に平均値を計算しています。
配列は、同じ型の複数のデータを管理する際に非常に便利なツールです。
このプログラムを理解することで、Javaでの配列の使い方がより深く理解できるでしょう。
<<前の問題 |
問題集Top |
次の問題>> |
この問題への質問・コメント
この問題を作成するにあたりAIを活用しています。
問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。