NIcht solchen Code wie
NewIndex= (NewIndex-1>=0) ? (NewIndex--) : (NewIndex=NewIndex+15);
schreiben Da is so viel Murx drin komprimiert, dass ich es gerade als Herausforderung sehe, aufzuzählen:
NewIndex-1>=0
istNewIndex>=1
- Der Fall von
NewIndex = NewIndex--;
ist das klassische Beispiel für „So schreibt man das nicht, aber in einer Anfänger-Klausur kommt garantiert mal die Frage ‚Was kommt dabei raus?‘, weil so schön viele sie falsch beantworten“ - Der andere Fall lautet, ausgeschrieben
NewIndex=NewIndex=NewIndex+15
Also: Schreib’ das nochtmal richtig, und … probier’ halt mal sowas hier aus:
System.out.println("addColor wurde mit "+color+" aufgerufen");
System.out.println("NewIndex ist vorher "+NewIndex);
if (...) { ... }
System.out.println("NewIndex ist nachher "+NewIndex);
und du wirst sehen: Wenn du den Wert richtig änderst, dann … macht der Computer auch das, was du ihm sagst…
Zum Thema Performance: Achte nicht drauf. Nicht auf dieser Ebene. Und wenn du mir nicht glaubst:
(Und wenn du nicht weißt, wer Brian Goetz ist: Achte nicht auf Performance )