@Warhorstl:
Wenn er das so macht, wird eine exception fliegen.
@bubblegumsoldie:
Ich schlage folgende Lösung vor, die auch relativ flexibel ist und sich an verschiedene Bedürfnisse anpassen lässt:
Schreibe eine Methode, die folgendes macht:
Code:
public int modulo(int number, int mod) {
return ((number % mod) + mod) % mod;
}
number steht dabei für die Nummer, welche Stelle du haben möchtest,
an mod übergibst du die maximale Indexgröße des Arrays, in deinem Fall 6.
Einen Aufruf mit modulo(-2, 6) würde dir also das Element an Stelle 4 zurückgeben, also
Freitag, modulo(2, 6) den Mittwoch,...
Könntest das jetzt auch z.b. mit -12 aufrufen, was dir den Montag zurückliefern würde,
entscheidend ist jedenfalls, dass dir keine Exception um die Ohren fliegen wird, wenn du einen Index
ansprichst, der nicht existiert im Array.
Die Methode liefert dir also den passenden Index zurück (Werte von 0-6).
Wenn deine Arraygröße festbleibt in deinem Fall die Wochentage und du nicht den passenden Index an die Methode übergeben möchtest, sondern die "logische" Stelle des x. Wochentages, also 1 = Montag, 2 = Dienstag,...7 = Sonntag, kannst du die Methode auch so umschreiben, dass du nur den Index des Elements angibst, also:
Code:
public int modulo(int number) {
return (((number + 1) % 6) + 6) % 6;
}
Dann liefert dir der Wert -2, den Samstag, -1 den Sonntag, 1 den Montag, usw.
Das ganze lässt sich jetzt sehr leicht an deine Bedürfnisse anpassen, jenachdem was du brauchst,
aber ich denke das Grundprinzip sollte klar sein, falls nicht frag nochmal.
P.S: Du würdest das Array dann nicht mit "hallo[-2]" aufrufen, sondern mit "hallo[modulo(-2)]". Wenn du es so programmierst wie im zweiten Fall.