逐次探索 (番兵)

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

逐次探索 (番兵)

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

    public static void main(String[] args) {
        int[] ary = {83, 55, 777, 499, 20, 0};
        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)
    {
        ary[no] = key;

        int i = 0;
        while (true)
        {
            if (ary[i] == key) break;
            i++;
        }

        return (i == no ? FAILED : i + 1);
    }

}

実行結果

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