2020/03/23 公開
・複数の値の合計と平均
複数の数値の合計値と平均値を計算するプログラムを解説します。合計値は、配列で与えられた複数の値を全て足した値で、平均値は、合計値を与えらた数で割った数値です。
以下が、配列の値の合計値と平均値を求めるJavaのソースソースコードです。
Total.java ← クリックしてダウンロードページに移動001: public class Total { 002: public static void main( String[] args ) { 003: // 合計値を格納する変数を宣言 004: int total; 005: // 数値群 006: int[] num = { 10, 5, 22, 56, 13, 77, 26, 43, 6, 4, 19 }; 007: 008: // 合計値の初期値を0 009: total = 0; 010: // 値の数を回数にした繰り返し処理 011: for ( int i = 0; i < num.length; ++ i ) { 012: // 値をtotalに足していく 013: total = total + num[ i ]; 014: } 015: 016: // 結果を表示 017: System.out.println( "合計=" + total ); 018: System.out.println( "値の数=" + num.length ); 019: System.out.println( "平均(小数切捨て)=" + total / num.length ); 020: System.out.println( "平均=" + (float)total / (float)num.length ); 021: } 022: }
Total.javaの出力結果
合計=281 値の数=11 平均(小数切捨て)=25 平均=25.545454
合計値と平均値を計算するプログラムについて解説します。
005: // 数値群 006: int[] num = { 10, 5, 22, 56, 13, 77, 26, 43, 6, 4, 19 };
008: // 合計値の初期値を0 009: total = 0; 010: // 値の数を回数にした繰り返し処理 011: for ( int i = 0; i < num.length; ++ i ) { 012: // 値をtotalに足していく 013: total = total + num[ i ]; 014: }
for文を使った11回(num.length)のループで、変数totalに値を足していっています。このループを抜けると、変数totalに合計値が格納されてます。
016: // 結果を表示 017: System.out.println( "合計=" + total ); 018: System.out.println( "値の数=" + num.length ); 019: System.out.println( "平均(小数切捨て)=" + total / num.length ); 020: System.out.println( "平均=" + (float)total / (float)num.length );
結果を表示しています。ここで、平均値の計算方法について考えていきます。平均(小数切捨て)は、total / num.lengthで計算しているため小数点以下の値は切り捨てられています。これは、totalとnum.lengthの両方がint型であるため、その計算結果もint型になったためです。
float型または、double型で計算すれば、小数点以下の数値を表現することができます。このソースコードの例では、totalとnum.lengthの前に、(float)を付けることでint型を一時的にfloat型として計算させています。これを型キャストといいます。
次に、配列の合計値の計算をメソッドで行うプログラムを紹介します。以下は、そのJavaソースコードです。
Total2.java ← クリックしてダウンロードページに移動001: public class Total2 { 002: // 配列の合計を戻すメソッド 003: private static int calc_total( int[] num ) 004: { 005: // 合計値を格納する変数を宣言 006: int total; 007: 008: // 合計値の初期値を0 009: total = 0; 010: // 値の数を回数にした繰り返し処理 011: for ( int i = 0; i < num.length; ++ i ) { 012: // 値をtotalに足していく 013: total = total + num[ i ]; 014: } 015: // 合計値を格納したtotalを戻す 016: return total; 017: } 018: 019: // メイン 020: public static void main( String[] args ) { 021: // 数値群 022: int[] num = { 10, 5, 22, 56, 13, 77, 26, 43, 6, 4, 19 }; 023: 024: // 合計値を計算 025: int total = calc_total( num ); 026: 027: // 結果を表示 028: System.out.println( "合計=" + total ); 029: System.out.println( "値の数=" + num.length ); 030: System.out.println( "平均(小数切捨て)=" + total / num.length ); 031: System.out.println( "平均=" + (float)total / (float)num.length ); 032: } 033: }
Total2.javaの出力結果
合計=281 値の数=11 平均(小数切捨て)=25 平均=25.545454
結果は、Total.Javaから出力される結果と同じです。
002: // 配列の合計を戻すメソッド 003: private static int calc_total( int[] num ) 004: { 005: // 合計値を格納する変数を宣言 006: int total; 007: 008: // 合計値の初期値を0 009: total = 0; 010: // 値の数を回数にした繰り返し処理 011: for ( int i = 0; i < num.length; ++ i ) { 012: // 値をtotalに足していく 013: total = total + num[ i ]; 014: } 015: // 合計値を格納したtotalを戻す 016: return total; 017: }
calc_totalメソッドは、引数として受け取ったint型の配列numの値を全て足した値を戻します。
for文を0から(num.length-1)のループで、変数totalに値にnum[ i ]を足していっています。このループを抜けると、変数totalに合計値が格納されてます。 最後にreturn分でtotalの値を戻しています。
最後に、キーボード入力した値で合計値の計算するJavaソースコードを紹介します。数字を半角スペースで区切って数値を入力していき、Enterキーで入力を終了します。その際、半角スペースは2個以上連続で入力しないでください。
Total3.java ← クリックしてダウンロードページに移動001: import java.util.Scanner; 002: 003: public class Total3 { 004: // キーボード入力した文字列を配列に格納 005: private static int[] scanNumbers( ) 006: { 007: // Scannerを作成 008: Scanner scan = new Scanner( System.in ); 009: 010: // 入力した文字列をlineに格納 011: String line = scan.nextLine(); 012: 013: // 半角スペースで区切られた文字列を配列valuesに格納 014: String[] values = line.split( " ", 0 ); 015: 016: // 配列の作成 017: int[] numbers = new int[ values.length ]; 018: 019: // valuesの値をint型に変換し、numbersに格納 020: for ( int i = 0; i < values.length; i++ ) { 021: // 文字列values[ i ]をint型に変換 022: try { 023: numbers[ i ] = Integer.parseInt( values[ i ] ); 024: } catch ( NumberFormatException ex ) { 025: // 数字に変換できなければnullを戻す 026: return null; 027: } 028: } 029: 030: // int型の配列を戻す 031: return numbers; 032: } 033: 034: // 配列の合計を戻すメソッド 035: private static int calc_total( int[] num ) 036: { 037: // 合計値を格納する変数を宣言 038: int total; 039: 040: // 合計値の初期値を0 041: total = 0; 042: // 値の数を回数にした繰り返し処理 043: for ( int i = 0; i < num.length; ++ i ) { 044: // 値をtotalに足していく 045: total = total + num[ i ]; 046: } 047: // 合計値を格納したtotalを戻す 048: return total; 049: } 050: 051: // メイン 052: public static void main( String[] args ) { 053: // 数値群をキーボードから入力 054: System.out.println( "整数値を入力(数字と数字の間は半角スペース)" ); 055: int[] num = scanNumbers(); 056: if ( null == num ) { 057: System.out.println( "入力した値が不正です!" ); 058: return; 059: } 060: 061: // 合計値を計算 062: int total = calc_total( num ); 063: 064: // 結果を表示 065: System.out.println( "合計=" + total ); 066: System.out.println( "値の数=" + num.length ); 067: System.out.println( "平均(小数切捨て)=" + total / num.length ); 068: System.out.println( "平均=" + (double)total / (double)num.length ); 069: } 070: }
キーボード入力の詳しい説明は「 キーボード入力値を配列に格納 」を参照してください。
■関連コンテンツ
Javaの配列 | 同じ型の変数をまとめた配列について解説 |
型キャスト | 変数の型を変換する方法について解説 |
キーボード入力値を配列に格納 | キーボード入力→配列 |
for文繰り返し処理に使用するfor文をJavaのソースコードを使って説明しています。 |
■新着情報
2022.07.07 | 外部プログラムの実行 | exeファイル実行 |
2022.07.06 | 完全数 | 6=1+2+3 |
■広告