Compiler-Fehler Array rückwärts ausgeben

Hallo zusammen 🙂
hab ein kleines Problem
und zwar folgendes wir haben die Aufgabe bekommen ein Wort rückwärts wieder auszugeben
Anfangsstellung sieht wie folgt aus
[JAVA=42]
char hallo[] = {'H', 'a', 'l', 'l', 'o'};
for (int i = 0; i < hallo.length ; i++)
{
System.out.print(hallo);
}
[/code]
nun hab ich das in Netbeans bearbeitet und es sieht wie folgt aus
[JAVA=42]
char hallo[] = {'H', 'a', 'l', 'l', 'o'};
for (int i = 4; i <hallo.length ; i--)
{
System.out.print(hallo);
}
[/code]
Er sagt zwar das es richtig, compliert ist auch ABER es kommt folgende Warnung/Hinweis:
"
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
ollaH at Versuch.Hallo.main(Hallo.java:20)
Java Result: 1
BUILD SUCCESSFUL
"
Wie soll ich das interpretieren ?
Ich hatte auch irgendwo gelesen ich muss die Bedingung: " i < hallo.length " umdrehen also in " i> hallo.length" aber da gibt er mir nix mehr aus wenn ich dies tue.
 
Java:
for (int i = 4; i <hallo.length ; i--)
Die BEdingung in der Mitte is Quatsch. Du willst doch die Schleife solange laufen, wie du nicht beim ersten Element angekommen bist, also
Java:
for (int i = 4; i  >= 0; i--)

EDIT: Dei Bedingung for
Code:
i <hallo.length
ist in deinem Fall übrigens IMMER erfüllt.
 
Zuletzt bearbeitet:
Die for-Schleife kann viel, das musst du in dein Grundwissen aufnehmen.

for (Beliebige VorherZuweisung(en!); Bedingung; Beliebige NachherZuweisung(en!){
Beliebige Zuweisung(en!);
}

Z.B. ist auch gültig, (nicht unbedingt sinnvoll, und keine Ahnung wie das Ergebnis aussieht, aber gültig):
Java:
 for (        i=5, int j= max-i  ;   j>2 && i==func(j)   ;   system.out.print(j),  j-=i )
     ;

Die VorherZuweisung(en!) und NachherZuweisung(en!) können mehrere beliebige sein mit ',' getrennt.
und die Bedingung ist ein beliebiger boolscher Ausdruck.
 

Zurück
Oben