26.1.6.17 ない場合

探索のwhile形式を見つからない場合の対策を含めて

i < a.length && a[i]!=v

という条件にした場合, このwhile形式が終了した時点での パラメータiの値は

ここで使った継続条件では,繰返しの毎回ごとに条件を2個,すなわち"i < a.length"と"a[i]!=v"とを調べます.このうち前者の条件は,見つからなかった場合だけのためのもので,ほとんどの場合は無駄になります.これを避ける方法の一つに,

a[a.length-1]にあらかじめvを入れておく

やり方があります.もちろん,この"最後の要素"は,調べる対象としては使えません.繰返しは

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

となり,

i==a.length-1が“見つからなかった”ことを示す

ことになります.

この最後の要素値のように,

調べられる値のようなふりをしているが,実は繰返しを確実に停止させるためのもの

を一般に番兵(sentinel)と呼び,プログラミングの中のいろいろなところで使われています.