Mit einer zehn-elementigen Initialisierungsliste wird das fehlerhafte Programm in einem von zehn Fällen fehlschlagen (eine Liste von Zufallszahlen vorausgesetzt). Es müsste noch nicht einmal klar sein, dass es fehlschlug, weil die errechnete Antwort nahe am Maximum ist. Mit einem Array von zehntausend Elementen (keine ungewöhnliche Länge) wird das Programm in einem von zehntausend Fällen fehlschlagen! Off-by-one Fehler können sehr subtil sein.
Hier ist ein Programm, das das Minimum eines Array feststellt. Es ähnelt in seinem grundsätzlichen Aufbau dem Maximum-Programm:
class MinAlgorithm
{
public static void main ( String[] args )
{
int[] array = { -20, 19, 1, 5, -1, 27, 19, 5 } ;
int min;
// das gegenwärtige Minimum initialisieren
min = ___________
// das Array durchsuchen
for ( int index=0; index < array.length; index++ )
{
_________________
_________________
}
System.out.println("Das Minimum dieses Arrays ist: " + min );
}
}