演習(検索1)の回答例

出典: CourseWiki

public class Find1 {
    public static void main(String[] args) {
        int[] data = {1, 2, 3, 2, 5};
        System.out.println(find(data, 1));  // 0 を表示するはず
        System.out.println(find(data, 2));  // 1 を表示するはず
        System.out.println(find(data, 100));  // -1 を表示するはず
        System.out.println(count(data, 1));  // 1 を表示するはず
        System.out.println(count(data, 2));  // 2 を表示するはず
        System.out.println(count(data, 100));  // 0 を表示するはず
    }
 
    // 配列の中から指定された値を検索し,その添え字を返す.
    // 存在しなければ -1 を返す.
    private static int find(int[] data, int value) {
        for (int i = 0; i < data.length; i++) {
            if (data[i] == value) {
                return i;
            }
        }
        return -1;
    }
 
    // 配列の中から指定された値を検索し,その出現回数を返す.
    private static int count(int[] data, int value) {
        int count = 0;
        for (int i = 0; i < data.length; i++) {
            if (data[i] == value) {
                count++;
            }
        }
        return count;
    }
}

findメソッドのように,何か特別な条件のとき(ここでは指定された値が存在しないとき),何か特別な値を 返す(ここでは-1)ことはよく行われます.

findメソッドやcountメソッドの形は非常によく出てくるので,暗記しておきましょう.

ナビゲーション