配列の中の値を探索するにはどうしたらよいでしょうか.一番簡単なのは,端から順に調べることです.配列は,その添字値を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 < a.length && a[i]!=v
とするのが簡単です.
26.1.6.15 配列の応用 | 26.1.6.16 探索 | 26.1.6.17 ない場合 | ||
2009年度版に向けて現在作業中です.
このページに関してお気づきの点がありましたら
コメント投稿システムまでお願いします.
|
Wed, 12 May 2004 01:21:33 JST (1907d) |