目次
以下の条件に従って、コードを書いてください。
List<Integer>型の変数numbersを宣言し、5,12,18,25,32,40の6つの値を格納してください。- リスト内の各要素が
20以上の値のみを含む新しいリストfilteredNumbersを作成してください。filteredNumbersの合計値を計算し、その値をSystem.debug()を使ってコンソールに出力してください。
解答例
public class ListFilterExample {
public static void main() {
// List<Integer> 型の変数 numbers を宣言し、6つの値を格納
List<Integer> numbers = new List<Integer>{5, 12, 18, 25, 32, 40};
// 新しいリスト filteredNumbers を作成し、20以上の値をフィルタリング
List<Integer> filteredNumbers = new List<Integer>();
for (Integer num : numbers) {
if (num >= 20) {
filteredNumbers.add(num);
}
}
// filteredNumbers の合計値を計算
Integer sum = 0;
for (Integer num : filteredNumbers) {
sum += num;
}
// 合計値をコンソールに出力
System.debug('Sum of numbers >= 20: ' + sum);
}
}解説
プログラムは、リストから20以上の値を抽出して、その合計を計算し、結果をコンソールに表示するという内容です。
1. リスト(List)の宣言と初期化
まず、リストを宣言し、値を格納します。
List<Integer> numbers = new List<Integer>{5, 12, 18, 25, 32, 40};List<Integer>は 整数のリスト を表します。Integerは整数を扱うデータ型で、Listは複数の値を一つにまとめて扱うことができるデータ型です。numbersはリストの名前で、このリストに6つの整数値(5, 12, 18, 25, 32, 40)を格納しています。
2. 新しいリスト filteredNumbers の作成
次に、リストの中から「20以上」の数値だけを含む新しいリスト filteredNumbers を作成します。
List<Integer> filteredNumbers = new List<Integer>();- 空のリスト
filteredNumbersを作ります。これは後で条件に合った数値だけを入れるためのリストです。
3. forループを使って値をフィルタリング
次に、リスト numbers の中身を順番にチェックして、20以上の数値だけを新しいリスト filteredNumbers に追加します。
for (Integer num : numbers) {
if (num >= 20) {
filteredNumbers.add(num);
}
}- forループ:
numbersの中身を1つずつ取り出して、numという変数に入れて処理します。これをリストのすべての値(5, 12, 18, 25, 32, 40)に対して行います。- 1回目のループで
numは5になります。 - 2回目のループで
numは12になります。 - 3回目のループで
numは18になります。 - …と順番に進みます。
- 1回目のループで
- if文:
if (num >= 20)という条件文で、numが20以上かどうかをチェックします。- 例えば、1回目のループでは
numは5なので、この条件は満たされません。なので何もしません。 - 4回目のループでは
numは25なので、この条件は満たされます。filteredNumbersに25が追加されます。
- 例えば、1回目のループでは
filteredNumbers.add(num)は、条件を満たした数値(20以上)をfilteredNumbersに追加します。
結果として、filteredNumbers は [25, 32, 40] という3つの数値を持つリストになります。
4. 合計値の計算
次に、filteredNumbers に入った数値の合計を計算します。
Integer sum = 0;
for (Integer num : filteredNumbers) {
sum += num;
}- sum: 変数
sumを作り、最初は0にしておきます。この変数にリストの数値を加算していきます。 - forループ:今度は、
filteredNumbersの中身(25, 32, 40)を順番に取り出して、その数値をsumに足していきます。- 1回目のループでは
numは25なので、sumに25を足します。sumは0 + 25 = 25になります。 - 2回目のループでは
numは32なので、sumに32を足します。sumは25 + 32 = 57になります。 - 3回目のループでは
numは40なので、sumに40を足します。sumは57 + 40 = 97になります。
- 1回目のループでは
最終的に、sum は97になります。これが合計値です。
5. 結果をコンソールに出力
最後に、合計値を System.debug でコンソールに表示します。
System.debug('Sum of numbers >= 20: ' + sum);System.debug()はコンソールにメッセージを表示するための命令です。+ sumは、合計値(97)を文字列に追加して一緒に表示します。
結果として、コンソールには次のメッセージが表示されます。
Sum of numbers >= 20: 97全体の流れ
- 最初に
numbersというリストを用意します。 - そのリストの中から、20以上の値を
filteredNumbersに追加します。 filteredNumbersの合計を計算します。- 合計をコンソールに出力します。
実行結果
プログラムを実行すると、次のような結果がコンソールに表示されます。
Sum of numbers >= 20: 97このように、リスト操作、条件分岐、ループ、そしてデバッグ出力の基本的な使い方が組み合わさった問題です。
