JavaScriptのforループを使って数値配列の偶数のみを合計する方法
JavaScriptでは、forループと剰余演算子(%)を組み合わせることで、数値配列の中から偶数だけを取り出して合計できます。偶数の判定は「2で割った余りが0である」という性質を利用するのが基本です。
偶数のみを合計する手順
- 合計を保持する変数(例:
tot)を0で初期化する forループで配列の要素を先頭から順に1つずつ確認するa[i] % 2 == 0が成り立つ要素(偶数)だけを合計に加算する- ループ終了後、合計値を出力する
サンプルコード
<html>
<body>
<script>
var tot = 0;
var a = [1, 45, 78, 9, 78, 40, 67, 76];
for (var i = 0; i < a.length; i++) {
// 2で割った余りが0なら偶数
if (a[i] % 2 == 0) {
tot += a[i];
}
}
document.write(tot);
</script>
</body>
</html>
実行結果
272
コードの解説
配列 [1, 45, 78, 9, 78, 40, 67, 76] のうち、偶数は 78・78・40・76 の4つです。各要素を % 2 で判定すると次のようになります。
- 1 % 2 → 1(奇数)→ 加算しない
- 45 % 2 → 1(奇数)→ 加算しない
- 78 % 2 → 0(偶数)→ 加算する
- 9 % 2 → 1(奇数)→ 加算しない
- 78 % 2 → 0(偶数)→ 加算する
- 40 % 2 → 0(偶数)→ 加算する
- 67 % 2 → 1(奇数)→ 加算しない
- 76 % 2 → 0(偶数)→ 加算する
そのため、合計は 78 + 78 + 40 + 76 = 272 となります。
注意点:ループの条件式
ループ条件は必ず i < a.length としてください。誤って i > a.length のように書くと、最初の比較の時点で条件が成立せず、ループ本体が一度も実行されずに終了し、結果は常に 0 になってしまいます。また、tot += a[i] の末尾にはセミコロンを付けておくと安全です。
補足:filter と reduce を使ったモダンな書き方
ES6以降の構文を使えば、同じ処理をより簡潔で読みやすく記述できます。
const a = [1, 45, 78, 9, 78, 40, 67, 76]; const total = a .filter(n => n % 2 === 0) // 偶数だけを抽出 .reduce((sum, n) => sum + n, 0); // 合計を計算 console.log(total); // 272
filter()で偶数の配列を作り、reduce()で合計するという流れなので、「偶数を集めて足す」という意図がコードから直接読み取れます。従来のforループとの使い分けとして覚えておくと便利です。
-
JavaScriptで配列を降順に並べ替えて隣接要素の差の合計を求める方法
問題 整数の配列を受け取るJavaScript関数を作成する必要があります。この関数は、配列を降順に並べ替えたうえで、隣り合う要素同士の差を順番に足し合わせ、その合計値を返すものです。 たとえば、次のような配列が渡された場合を考えてみましょう。 [6, 2, 15] この場合、期待される出力は次のとおりです。 (15 - 6) + (6 - 2) = 13 解決のアプローチ この問題は、以下の手順でシンプルに解くことができます。 sort()メソッドを使い、配列を降順(大きい順)に並べ替える。 隣接する2つの要素(i番目と i + 1 番目)の差を計算し、合計に加算していく。 配列の要素
-
【初心者向け】C言語のforループで配列内の偶数と奇数を分離する方法
配列(Array)とは、関連性のある複数のデータ項目を、たった一つの名前でまとめて管理できるデータ構造のことです。例えば「int student[30];」と宣言すると、studentという名前の配列変数ひとつで、30個分のデータを格納できます。配列に対する主な操作検索(Searching) − 特定の要素が配列内に存在するかどうかを調べる操作です。ソート(Sorting) − 配列内の要素を昇順または降順に並べ替える操作です。走査(Traversing) − 配列内のすべての要素を先頭から順番に処理していく操作です。挿入(Inserting) − 配列に新しい要素を追加する操作です。削除(D