Tips

【Java】プログラム作成練習問題6

【Java】プログラム作成練習問題6

プログラム作成問題の第6回となります。

※この出題形式に関しては答えは1つではありません。
解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正解として下さい。

問題

64, 3, 45, 291, 178の5つの要素を持つ配列arrayがある。
これらの要素の中から最小値を求めるプログラムを作成せよ。

解答例1
[java] package exercise;

public class Exercise_006 {
public static void main(String[] args) {
int[] array = { 64, 3, 45, 291, 178 };

int min = array[0];
for(int i = 1; i < array.length; i++) {
if(min > array[i]) {
min = array[i];
}
}

System.out.println(min);
}
}
[/java]

変数minに暫定最小値を代入し、for文で一つ一つの要素と大小を比較していきます。
もし要素の方が小さければ暫定最小値が入れ替わります。


解答例2
[java] package exercise;

import java.util.Arrays;

public class Exercise_006 {
public static void main(String[] args) {
int[] array = { 64, 3, 45, 291, 178 };

Arrays.sort(array);

System.out.println(array[0]);
}
}
[/java]

utilパッケージにあるArraysクラスのsortメソッドで要素をソートしました。
要素が昇順に並び替わるのでarray[0]に一番小さい値がきます。
この方法だと元の順番が維持できなくなってしまうので注意です。


間違い例

[java] package exercise;

public class Exercise_006 {
public static void main(String[] args) {
int[] array = { 64, 3, 45, 291, 178 };

int min = 0;
for(int i = 0; i < array.length; i++) {
if(min > array[i]) {
min = array[i];
}
}

System.out.println(min);
}
}
[/java]

とりあえず0で初期化!ってやってしまうと失敗します。
なので実際に要素として存在する値で初期化しなければいけません。
解答例1ではarray[0]で初期化していますね。
array[0]で初期化すればarray[1]から比較していけばいいのでfor文を1回短くすることができます。


  

新連載はじまりました!新Java基礎 連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search