2D Array - char durch die Matrix "wandern" lassen

E

ethanhunt

Mitglied
Hallo,

als Einsteiger versuche ich in einem 2D-Array ein Zeichen wandern zu lassen. Durch die Eingabe für links, rechts, rauf, runter wandert das Zeichen.
Es funktioniert in alle Richtungen, nur nicht nach "unten". Hier wirft mir Eclipse die OutOfBoundsException.

Der Code:
Java:
public static void main(String[] args)
    {
        
        char arr[][] =  {{'x','x','x'},
                              {'x','x','x'},
                              {'x','x','x'}};
        
        char cross = 'o';
        
        arr [1][1] = cross;
        
        for (char[] elemente : arr)
            System.out.println(elemente);
        
        int auswahl;
        System.out.println("auswahl 1 = rauf; auswahl 2= runter; 3= links; 4= rechts");
        Scanner sc = new Scanner (System.in);
        auswahl = sc.nextInt();
        
        for (int i = 0; i < arr.length; i = i + 1 )
        {
            for (int j = 0; j < arr[i].length; j++)
            {
                int temp;
        
                if (arr[i][j] == 'o')
                {
                    arr[i][j] = 'x';
                    
                    if (auswahl == 1)
                    {
                        temp = i - 1;
                        arr[temp][j] = 'o';
                        break;
                    }
                    
                    if (auswahl == 2) //Char 'o' soll nach unten wandern.
                    {
                        temp = i + 1;
                        System.out.println(temp); // Temp wird auf 2 gesetzt und ausgegeben.
                        arr[temp][j] = 'o';  // Hier ensteht der Fehler. Manuell cross=  'o' auf [2][1] intialisieren funktioniert. Das müsste der Wert sein, der in dieser If Bedingung ermittelt wird für das Array.
                        break;
                    }
                    if (auswahl == 3)
                    {
                        temp = i - 1;
                        arr[i][temp] = 'o';
                        break;
                    }
                    
                    if (auswahl == 4)
                    {
                        temp = i + 1;
                        System.out.println(temp);
                        arr[i][temp] = 'o';
                        break;
                    }
                    
                }
                
            }//inner for
                
        }//end for
 
E

ethanhunt

Mitglied
sorry, hatte nur Kommentare daneben geschrieben. Es ist der Teil:
Java:
 if (auswahl == 2) //Char 'o' soll nach unten wandern.
                    {
                        temp = i + 1;
                        System.out.println(temp); // Temp wird auf 2 gesetzt und ausgegeben.
                        arr[temp][j] = 'o';  // Hier ensteht der Fehler. Manuell cross=  'o' auf [2][1] intialisieren funktioniert. Das müsste der Wert sein, der in dieser If Bedingung ermittelt wird für das Array.
                        break;
 
E

ethanhunt

Mitglied
Hi Kirby Sike: Wenn i auf 2 ist, bin ich außerhalb des Arrays.
Initial ist ist das Zeichen 'o' auf [1][1] im Array. Sollte also auf 2 gehen können.

Start initial:
xxx
xox
xxx

Wenn (auswahl = 2, also "runter") müsste doch die Ausgabe folgendes zeigen?
xxx
xxx
xox

Die If- Bedingung zB: mit auswahl 1= rauf zeigt auch
xox
xxx
xxx
Da funktionierts.

Dass es kein [3] geben kann und zum Fehler führt - ok. Aber soweit geht die Variable temp noch nicht, da sie nur den Wert 2 erhält in dem Code Beispiel.
 
kneitzel

kneitzel

Top Contributor
Vermutlich wird er zwei Schritte nach unten gehen wollen. Hast du nicht auch die Ausgabe 3?

Dein Break verläßt die innere Schleife. Aber die äußere läuft weiter. Somit findet er das o auch in der dritten Zeile und will es in die 4te packen.
 
E

ethanhunt

Mitglied
@Kirby_Sike: hast recht :) ich werde noch eine Begrenzung einführen
@JustNovody: Danke, hast absolut recht. Das Zeichen o rutscht zusammen mit der Schleifenabfrage runter und findet sich immer wieder. Das erhöht temp.

Ich hab eine Marke eingesetzt und es funktioniert

Bsp:
Java:
    Arraydurchlauf: // Marke
        for (int i = 0; i < arr.length; i = i + 1 )
        {
            for (int j = 0; j < arr[i].length; j++)
            {
                int temp;
        
                if (arr[i][j] == 'o')
                {
                    arr[i][j] = 'x';
                    
                    if (auswahl == 1)
                    {
                        temp = i - 1;
                        arr[temp][j] = 'o';
                        break Arraydurchlauf; //Durchbricht beide Schleifen
                    }
                    
                    if (auswahl == 2)
                    {
                        temp = i + 1;
                        System.out.println(temp);
                        arr[temp][j] = 'o'; 
                        break Arraydurchlauf;
                    }

Danke!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Alle Vorkommen eines chars in einem Array durch einen anderen char ersetzen Java Basics - Anfänger-Themen 10
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
A char array wird überschrieben Java Basics - Anfänger-Themen 6
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
I char Array to String Java Basics - Anfänger-Themen 3
C (char) Array einlesen Java Basics - Anfänger-Themen 8
H char-Array Java Basics - Anfänger-Themen 22
C Methoden String in char Array Java Basics - Anfänger-Themen 3
E Wie wird in Java ein Char-Array terminiert ? Java Basics - Anfänger-Themen 15
W Char Array bearbeiten Java Basics - Anfänger-Themen 6
A Char-Array erstellen Java Basics - Anfänger-Themen 35
Z char Array unbekanntes Zeichen selbstständig anlegen Java Basics - Anfänger-Themen 6
M Bestimmen, wie oft ein Char in einem Array vorkommt Java Basics - Anfänger-Themen 2
C char array-positionstausch Java Basics - Anfänger-Themen 6
R Anzahl von Zeichen in einem Char Array Java Basics - Anfänger-Themen 4
L zweidimensionales char array reihenfolge ändern ? Java Basics - Anfänger-Themen 2
D Best Practice String aufbau - Char Array oder Anhängen Java Basics - Anfänger-Themen 11
S For Schleife Char Array Java Basics - Anfänger-Themen 1
W char-Array auf bestimmte Zeichen prüfen Java Basics - Anfänger-Themen 10
B char Array mit ints Java Basics - Anfänger-Themen 7
J Char-Array - NullPointerException Java Basics - Anfänger-Themen 3
J char-Array rückwärts ausgeben und in neues Char-Array speichern Java Basics - Anfänger-Themen 3
S Array - index von Benutzer eingegebenen char ausgeben Java Basics - Anfänger-Themen 3
M char Array füllen Java Basics - Anfänger-Themen 2
H ArrayList mit char- Array befüllen Java Basics - Anfänger-Themen 12
P Datentypen String auf JTextField wird zu Char-Array und anschließend zu int Java Basics - Anfänger-Themen 12
D Char Array ab bestimmter Stelle in neuem Speichern Java Basics - Anfänger-Themen 13
D Eine Stelle eines Char- Arrays nach dem vorkommen in einem ganzem anderem Array überprüfen Java Basics - Anfänger-Themen 20
C Leerzeichen im char Array setzen Java Basics - Anfänger-Themen 33
N Methode die String in char-Array wandelt!! Java Basics - Anfänger-Themen 11
D Erste Schritte String Array in char Array umwandeln? Java Basics - Anfänger-Themen 1
E Char-Array zu String Java Basics - Anfänger-Themen 2
M Datentypen Char Array in String Array gibt Probleme Java Basics - Anfänger-Themen 10
M Char-Array Problem Java Basics - Anfänger-Themen 6
F Char Array splitten Java Basics - Anfänger-Themen 5
S Mehrdimensionales Char-Array initialisieren Java Basics - Anfänger-Themen 17
S char Array in Character KlassenArray? Java Basics - Anfänger-Themen 24
Semox Datentypen Einlesen von char in Array schlägt unerwartet fehl Java Basics - Anfänger-Themen 4
H Datentypen char array in int umwandeln Java Basics - Anfänger-Themen 9
B Unterschied zwischen String & char Array? Java Basics - Anfänger-Themen 5
B Datentypen Char Array in einen String verwandeln? Java Basics - Anfänger-Themen 2
J char array eintraege geben Java Basics - Anfänger-Themen 2
T Char Array in fremder Klasse Java Basics - Anfänger-Themen 20
S Char Array Werte in short variablen speichern Java Basics - Anfänger-Themen 4
P Array index per char suche auslesen Java Basics - Anfänger-Themen 3
M 2D char Array anzeigen Java Basics - Anfänger-Themen 4
G Zeichenkette in char-Array konvertieren Java Basics - Anfänger-Themen 13
M wie auf ein feld mit leerzeichen in einem char array prüfen? Java Basics - Anfänger-Themen 4
J String in char Array Java Basics - Anfänger-Themen 2
J Verständnisfrage zu Char-Array Java Basics - Anfänger-Themen 5
N String/char-array aus datei auslesen Java Basics - Anfänger-Themen 2
M char Array in int Array Java Basics - Anfänger-Themen 3
J Array - Vertauschen Problem mit char/int Java Basics - Anfänger-Themen 6
Jen Array einlesen, Int und Char Java Basics - Anfänger-Themen 57
J Char-Array mit variabler Länge zurückliefern. Java Basics - Anfänger-Themen 11
B Deklaration eines char-array Java Basics - Anfänger-Themen 2
F abc char array Java Basics - Anfänger-Themen 3
J char[] reverse Array Java Basics - Anfänger-Themen 9
G Zufällige Buchstaben in char-Array Java Basics - Anfänger-Themen 9
0 Häufigstes Zeichen in einem Char-Array ermitteln? Java Basics - Anfänger-Themen 6
M Char Array mit Sonderzeichen in String umwandeln Java Basics - Anfänger-Themen 21
T String als Array und Umwandlung in Char Java Basics - Anfänger-Themen 7
J StringBuffer-Objekt soll auf Char-Array zugreifen. Java Basics - Anfänger-Themen 4
F char to byte array Java Basics - Anfänger-Themen 8
G Char oder Byte Array mit unbekannter länge erstellen? Java Basics - Anfänger-Themen 1
S Testen ob ein Char Array noch nicht belegt ist! Java Basics - Anfänger-Themen 3
G Char Array konvertieren Java Basics - Anfänger-Themen 7
megachucky probleme mit einem char-array. Java Basics - Anfänger-Themen 6
H char Array in String Java Basics - Anfänger-Themen 7
E Ziffer in char-Array Java Basics - Anfänger-Themen 2
S String in char-Array einfügen Java Basics - Anfänger-Themen 8
G Array und Char Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
C Matrix mit Array ausgeben Java Basics - Anfänger-Themen 6
L Methode Point[], Array widergeben Java Basics - Anfänger-Themen 5
M Array - Übung Java Basics - Anfänger-Themen 3
districon 2D Array - Länge zuweisen Java Basics - Anfänger-Themen 1
N Wozu nutzt man in der Main Methode das args Array? Java Basics - Anfänger-Themen 10
districon 2D Array - Zeilen und Spalten durchsuchen Java Basics - Anfänger-Themen 3
Hamudi Bachir 2D Array eingabe vom Benutzer Java Basics - Anfänger-Themen 31
M Array auf Primzahlen prüfen Java Basics - Anfänger-Themen 7
sashady 2D-Array mit Zahlenmuster füllen Java Basics - Anfänger-Themen 4
t2im Java Array-Länge ändern? Java Basics - Anfänger-Themen 22
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
K Rekursion: Rechenmauer mit Array erstellen Java Basics - Anfänger-Themen 17
G ImageIcon in Byte-Array ablegen Java Basics - Anfänger-Themen 7
sashady ursprüngliche Array-Werte bei erneutem Aufruf? Java Basics - Anfänger-Themen 7
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
A Array einlesen und ausgeben Java Basics - Anfänger-Themen 13
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
moiss002 Umgebungsvariable Kein Zugriff auf ein Array Java Basics - Anfänger-Themen 7
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
nonickatall Input/Output Zeichenkette in Array zerlegen Java Basics - Anfänger-Themen 2
E In Array Werte einfügen? Java Basics - Anfänger-Themen 5
S Wort einlesen Array ausgeben Java Basics - Anfänger-Themen 4
HighLife Bestimmte Werte aus Array zählen Java Basics - Anfänger-Themen 15

Ähnliche Java Themen


Oben