2020/3/23
数学
複数の値の最小値と最大値
以下のように、7つの数値が与えられた場合、
10、22、7、9、2、67、18
最小値 = 2 最大値 = 67
となります。
Javaソースコード
MinMax2.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021
public class MinMax2 { public static void main( String[] args ) { // 最小値と最大値を格納する変数を宣言 int min, max; // 数値群 int[] num = { 102, 506, 332, 9, 45, 88, 12, 367 }; // 最小値と大値を初期化(num[0]を代入) min = max = num[ 0 ]; for ( int i = 1; i < num.length; ++ i ) { // minとnum[i]の小さいほうの値をminに代入 min = Math.min( min, num[ i ] ); // maxとnum[i]の大きいほうの値をmaxに代入 max = Math.max( max, num[ i ] ); } // 結果を表示 System.out.println( "最小値=" + min ); System.out.println( "最大値=" + max ); } }
実行結果
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis MinMax2.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac MinMax2.java
MinMax2を実行
C:\talavax\javasample>java MinMax2
最小値=9 最大値=506
Javaソースコードの解説
005 006
// 数値群 int[] num = { 102, 506, 332, 9, 45, 88, 12, 367 };
008 009
// 最小値と大値を初期化(num[0]を代入)
min = max = num[ 0 ];
010 011 012 013 014
for ( int i = 1; i < num.length; ++ i ) { // minとnum[i]の小さいほうの値をminに代入 min = Math.min( min, num[ i ] ); // maxとnum[i]の大きいほうの値をmaxに代入 max = Math.max( max, num[ i ] );
for文を使った(8-1)回(num.length-1)のループで、配列に中の数値と、変数minと変数maxの大きさを比較して、それぞれ小さい値と大きい値を代入していきます。このループを抜けたときの変数minが最小値、変数maxが最大値になります。
017 018 019
// 結果を表示 System.out.println( "最小値=" + min ); System.out.println( "最大値=" + max );
結果を表示しています。
以上です。