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;
 
Kirby_Sike

Kirby_Sike

Top Contributor
Überlege dir mal was passiert wenn dein i auf 2 ist und du dann in das if reingehst ;)
 
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
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
Gaudimagspam Nummern generieren Array Java Basics - Anfänger-Themen 4
Eule25 Methode mit Array Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
J Array; Elemente kopieren Java Basics - Anfänger-Themen 16
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
P JSON-Array auf Excel-Spalten verteilen? Java Basics - Anfänger-Themen 5
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
T Array füllen Java Basics - Anfänger-Themen 11
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
S Auf Array aus Objekten zugreifen? Java Basics - Anfänger-Themen 1
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
A Speicherbereich von Array nicht zusammenhängend? Java Basics - Anfänger-Themen 8
S Java Array Probleme Java Basics - Anfänger-Themen 3
S Java Array Problem... Java Basics - Anfänger-Themen 2
C 2dimensionales array, Lagerverwaltung Java Basics - Anfänger-Themen 64
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
P Performance Array und Liste Java Basics - Anfänger-Themen 13
M Array Summe bestimmen? Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Anzeige

Neue Themen


Oben