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

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
 

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;
 

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.
 
K

kneitzel

Gast
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.
 

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
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
D 2D Char Array into String Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
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
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben