26.1.6.16 探索

配列の中の値を探索するにはどうしたらよいでしょうか.一番簡単なのは,端から順に調べることです.配列は,その添字値を1ずつふやせば,その要素値が順々に参照できるからです.基本的には次のようにします.

if(a[0]==v) "答えは0"; else
if(a[1]==v) "答えは1"; else
if(a[2]==v) "答えは2"; else …
… …

ここで配列をa,目的とする値をvとします.

問題は,これを繰返しの形にすることと,見つからなかった場合の処理です.

上記の形は“a[…]がvと等しくない間”繰り返す形ですから,添字の パラメータをiとして,

while(a[i]!=v) i=i+1;

と書くことができます.iの初期値はゼロです.このようにしたとして,"見つからない場合"はどうなるでしょうか.見つからないままiの値がどんどん増加してゆき,ついには配列の長さを越してしまいます.すなわち,"i < a.length"である間はいいのですが,"i=a.length"となった時点でエラーとなってしまうのです.これを防ぐためには,while形式での継続条件を

i &lt; a.length && a[i]!=v

とするのが簡単です.