Die Änderung des Programms hat zu einem off-by-one Fehler geführt. Der Arrayindex geht nicht weit genug um die letzte Zelle des Arrays zu testen.
Mit der 10 Elemente Initialisierungsliste wird das oben stehende fehlerhafte Programm einmal in zehn Fällen scheitern (eine Liste von zufälligen Zahlen vorausgesetzt). Der Fehler könnte nicht bemerkt werden, da die Antwort des Programms nahe am Maximum ist. In einem Array mit 10.000 Elemente wird das Programm nur in einem von 10.000 Fällen scheitern. Schlampiges Testen wird den Fehler niemals finden. Off-by-one Fehler können sehr unauffällig sein.
Klassischer Bug (3): Das nicht Testen der Arraygrenzen. Fehler werden oft an den Grenzen gefunden:
Was passiert, wenn der folgende Code ausgeführt wird?
int[] meinWochenlohn = {769, 588, 1245, 309, 388, 902}; int summe = 0; for ( int j=0; j<=6; j++ ) summe += meinWochenlohn[j];