逐次探索

明解C言語 入門編 > 6. 関数 >

逐次探索

Java
class Lesson049 {
    static final int NINSU  = 5;
    static final int FAILED = -1;

    public static void main(String[] args) {
        int[] ary = {83, 55, 777, 499, 20};
        int key = 18;

        int idx = search(ary, key, NINSU);
        if (idx == FAILED)
            System.out.printf("%dは、見つかりませんでした。\n", key);
        else
            System.out.printf("%dは、%d番目にあります。\n", key, idx);

        key = 499;

        idx = search(ary, key, NINSU);
        if (idx == FAILED)
            System.out.printf("%dは、見つかりませんでした。\n", key);
        else
            System.out.printf("%dは、%d番目にあります。\n", key, idx);
    }

    static int search(final int ary[], final int key, final int no)
    {
        int i = 0;
        while (true)
        {
            if (i      == no ) return FAILED;
            if (ary[i] == key) return i + 1;
            i++;
        }
    }

}

実行結果

L:\>java Lesson049
18は、見つかりませんでした。
499は、4番目にあります。