逐次探索 (番兵)

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

逐次探索 (番兵)

Ruby
NINSU  =  5
FAILED = -1

def search(key, no, ary)
    ary[no] = key
    i = 0
    while (1)
        break if (ary[i] == key)
        i += 1
    end
    return (i == no ? FAILED : i + 1)
end

ary = [83, 55, 777, 499, 20]
key = 18
idx = search(key, NINSU, ary)
if (idx == FAILED)
    print "#{key}は、見つかりませんでした。\n"
else
    print "#{key}は、#{idx}番目にあります。\n"
end

key = 499
idx = search(key, NINSU, ary)
if (idx == FAILED)
    print "#{key}は、見つかりませんでした。\n"
else
    print "#{key}は、#{idx}番目にあります。\n"
end

実行結果

L:\>ruby l:\lesson_06_050.rb
18は、見つかりませんでした。
499は、4番目にあります。