Blutiger Anfänger mit Array Problem

Status
Nicht offen für weitere Antworten.
T

Tocco

Gast
Hi,

ich möchte mir die OOProgrammierung beibringen und möchte dies gerne mit Java machen... Habe mich auch schon was durch das Javabuch und Java ist auch eine Insel gelesen und möchte nun als erste übung ein kleines Sudoku basteln...

So als erstes wollte ich aber erreichen, dass ich einen Spielplan mit 9x9 Feldern erstellt bekomme das einfach nur mit zufallszahlen gefüllt wird... Ohne auf irgendwelche Sudokuregeln zu achten sollen also zahlen ins feld. Dazu habe ich folgenden Code geschrieben:

Code:
public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Spielfeld spielfeld = new Spielfeld();
        
        for(int i=0; i<=8; i++){
        	for(int j=0; j<=8; j++){
        		System.out.println(spielfeld.createSpielfeld());
        	}
        }
	}

}

Code:
public class Spielfeld {
	
	int[][] spielfeld; 

	public Spielfeld(){
		spielfeld = new int[8][8];
	}
	
    int[][] createSpielfeld(){
    	for(int i=0; i <= 8; i++){
    		for(int j=0; j<=8; j++){
    			spielfeld[i][j] = (int)Math.random() * 10;
    		}
    	}
    return spielfeld;
    }
}

Nun bekomme ich folgenden Fehler:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
at Spielfeld.createSpielfeld(Spielfeld.java:13)
at Main.main(Main.java:13)

Was mache ich falsch? Und was genau bedeutet der Fehler?
 

Wildcard

Top Contributor
Du versuchst auf das 9te Feld eines Arrays zuzugreifen das nur 8 Felder lang ist (Man beginnt mit 0).
Code:
        for(int i=0; i<8; i++){
           for(int j=0; j<8; j++){
 

hdi

Top Contributor
Und was genau bedeutet der Fehler?

Den wirste wohl noch ein bis zwei-, naja vielleicht sogar drei Tausend mal sehen...

ArrayIndexOutOfBoundsException:

-Array is ja klar
-Index bezeichnet die Nummer eines "Faches" vom Array, eben von 0 bis length-1
-OutOfBounds = engl. für "ausserhalb der Grenzen", d.h. du hast mit einem Index aufs Array
zugegriffen, den es nicht gibt.
-Exception will sagen: FATALER MEGA SUPER TURBO FEHLER, DU DRECKS ANFÄNGER! ;)

..und auch etwas, das du demnächst wohl öfters sehen wirst:

NullPointerException

...freu dich drauf :lol:
 
T

Tocco

Gast
Danke für die fixe antwort! Funktioniert auch, aber leider verstehe ich nicht warum...

for(int i=0; i<=8; i++)

Anfangswert; Bedingung; Zählweise

Ich bin davon ausgegange, dass ich ihm sage: Fang mit 0 an, mach solange weiter wie du kleiner oder gleich 8 bist und zähl immer eins hoch...

Hab ich das falsch verstanden?
 
G

Guest

Gast
Achja, es werden außerdem keine zufallszahlen ausgegeben sondern nur "[[I@42e816" wenn ihr schon dabei seid den überschaubaren code zu studieren, könnt ihr mir dabei sicherlich auch behilflich sein... ;)

Danke schonmal!
 

hdi

Top Contributor
Naja wenn du bei 0 anfängst und bei einschliesslich 8 aufhörst, hast du halt 9.
0 1 2 3 4 5 6 7 8. Das sind neun ;)

Und was du ausdruckst, das ist das Objekt "spielfeld", und das ist ein 2d-Array mit einer
gewissen Bezeichnung, die Java dem Objekt gegeben hat. Wenn du den Inhalt eines Arrays
willst, bleibt dir nix anderes über, als wieder mit einer for-Schleife drüberzugehen und jeweils

spielfeld[x][y]

zu printen.
 

ARadauer

Top Contributor
Anonymous hat gesagt.:
Achja, es werden außerdem keine zufallszahlen ausgegeben sondern nur "[[I@42e816" wenn ihr schon dabei seid den überschaubaren code zu studieren, könnt ihr mir dabei sicherlich auch behilflich sein... ;)

Danke schonmal!

mhn spielfeld = new int[8][8]; das ist die größe 8, da musst du aber 9 hinschreiben.

warum "[[I@42e816" ausgebeben wird? weil du nicht die zufallszahl ausgibst sondern dein generierstes arrray, aja und du generierst dein array 64 mal 8*8 warum?
 

hdi

Top Contributor
Vorallem speicherst du diese ganzen Spielfelder ja nicht mal irgendwo ab.
Das ganze geht einfach so:

Code:
Spielfeld spielfeld = new Spielfeld(); 

// zufallszahlen erzeugen
spielfeld.createSpielfeld();

// zufallszahlen ausdrucken
for(int i = 0;i<8;i++){
  for(int j = 0;j<8;j++){
      System.out.println("An Stelle ["+i+"]["+j+"] steht die Zahl: "+spielfeld.spielfeld[i][j]);
  }
}

...du willst doch nicht wirklich 64 Spielfelder mit je 64 Zahlen drin, oder doch?
Wenn ja, musst du 64 neue Instanzen der Klasse Spielfeld erstellen, nicht nur eine:

Code:
for(int i=0; i<=64; i++){ // 2 verschachtelte Schleifen machen ja hier keinen Sinn...
         Spielfeld feld = new Spielfeld();
         feld.createSpielfeld();
         // jetzt noch dieses Spielfeld in einer Liste von Spielfeldern abspeichern
}
 

Marco13

Top Contributor
*räusper* Ein Soudoku-Feld ist 9x9 groß. Das Problem war also weniger das ...i<=8, sondern vielmehr das new int[8][8], was ein [9][9] sein müßte.

Aber wenn es um OOP geht: Du solltest (und für den Anfang kannst du diese (ansonsten etwas zu pasuchale) Regel mal so hinnehmen) NIE NIE NIE einen Array, der als Instanzvariable in einer Klasse liegt, nach draußen geben. Überleg' dir, was man mit einem Sudoku-Feld machen können muss:
Code:
interface SudokuField
{
    void set(int x, int y, int number);
    int get(int x, int y);
}
... Hmja. Viel mehr ist es eigentlich (erstmal!!!) nicht. Und das kann man jetzt implementieren.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
S Input (Blutiger Anfänger) Java Basics - Anfänger-Themen 18
StupidAttack Logisches Problem (Blutiger Anfänger) Java Basics - Anfänger-Themen 5
Z Blutiger Anfänger sucht nette Leute die gern helfen Java Basics - Anfänger-Themen 49
F blutiger anfänger Java Basics - Anfänger-Themen 7
S Blutiger Java Anfänger braucht dringend Hilfe Java Basics - Anfänger-Themen 4
T Blutiger Anfänger . hilfe gesucht. Java Basics - Anfänger-Themen 2
F simpler Taschenrechner (blutiger Anfänger) Java Basics - Anfänger-Themen 7
S Blutiger Anfänger- "Hallo Welt" unter JBuilder Java Basics - Anfänger-Themen 5
J blutiger Anfänger braucht Hilfe ^^ Java Basics - Anfänger-Themen 3
B OOP was heißt objektorientiertes Programmieren (fragt ein absoluter Anfänger) Java Basics - Anfänger-Themen 17
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
T Übungsbuch für Anfänger Java Basics - Anfänger-Themen 3
H Threads Anfänger Java Basics - Anfänger-Themen 17
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
J Anfänger, Fehler; "Der Hund liegt begraben" Java Basics - Anfänger-Themen 3
K Buchstabenzähler Java (Anfänger) Java Basics - Anfänger-Themen 35
E Kleines Java-Projekt für Anfänger Java Basics - Anfänger-Themen 10
U anfänger braucht hilfe . wir konnten die aufgaben nicht beantworten Java Basics - Anfänger-Themen 5
ehmo würfelspiel programmieren anfänger Java Basics - Anfänger-Themen 1
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
_Zabuza_ Erste Schritte Wie am effektivsten Java lernen als Anfänger? Java Basics - Anfänger-Themen 12
T Roulette für Anfänger Java Basics - Anfänger-Themen 7
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
K Java Anfänger Java Basics - Anfänger-Themen 5
F Hilfe für einen Anfänger! Java Basics - Anfänger-Themen 4
S Ein Java Anfänger braucht Hilfe Java Basics - Anfänger-Themen 5
P Übungsaufgaben für Anfänger? Java Basics - Anfänger-Themen 2
Z Unklarheit bei Übungsaufgabe [Anfänger] Java Basics - Anfänger-Themen 22
J Lesen und schreiben in eine Datei(Anfänger- Dateizugriffe) Java Basics - Anfänger-Themen 3
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
CT9288 Mini Anfänger-Problem mit loops, statements und ; Java Basics - Anfänger-Themen 4
F Hilfe, bin Anfänger! Java Basics - Anfänger-Themen 4
R Erste Schritte Materialien für Java-Anfänger Java Basics - Anfänger-Themen 7
Koookie Kleines Frage - Antwort Programm (Anfänger) Java Basics - Anfänger-Themen 5
F Studium aufgabe ...Anfänger sucht hilfe :D Java Basics - Anfänger-Themen 24
F Anfänger braucht Hilfe :) Java Basics - Anfänger-Themen 3
F Abrechnungsprogramm erstellen Student (Anfänger) Java Basics - Anfänger-Themen 2
D Anfänger braucht Hilfe Java Basics - Anfänger-Themen 2
J Musikplayer zu schwer für Anfänger? Java Basics - Anfänger-Themen 3
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
V Erste Schritte Anfänger: Ausführen eines Java-Programms Java Basics - Anfänger-Themen 5
Textsurfer Methoden Anfänger * Java Basics - Anfänger-Themen 5
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
C verwirrter Anfänger Java Basics - Anfänger-Themen 6
L Verzinsungsprogramm (Java-Anfänger) Java Basics - Anfänger-Themen 3
I if/else Statements Java Anfänger Java Basics - Anfänger-Themen 14
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
H Schleifen (anfänger) Java Basics - Anfänger-Themen 13
H Methoden Bluej Anfänger Java Basics - Anfänger-Themen 13
M Erste Schritte Einfache Aufzugssteuerung programmieren - Anfänger Java Basics - Anfänger-Themen 2
D Anfänger-Problem mit dem HalloWelt-Programm Java Basics - Anfänger-Themen 5
S Compiler-Fehler Anfänger sucht Hilfe. Fehler beim Compilieren Java Basics - Anfänger-Themen 6
V Erste Schritte Java-Anfänger braucht Hilfe bei Arrays Java Basics - Anfänger-Themen 19
V Array mit Zufallszahlen - Anfänger - Hilfe Java Basics - Anfänger-Themen 12
J Anfänger hat Problem mit seinen Beet Java Basics - Anfänger-Themen 12
D Compiler-Fehler Anfänger Fehlermeldung Java Basics - Anfänger-Themen 3
das_leon if als Auswahl (Anfänger) Java Basics - Anfänger-Themen 1
N Anfänger Problem Java Basics - Anfänger-Themen 4
GoodGuy [Anfänger] Kann mal wer drüber gucken? Java Basics - Anfänger-Themen 3
R Erste Schritte Anfänger Probleme bei AnimationDrawable Java Basics - Anfänger-Themen 0
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taxiwarteschlange - Anfänger Java Basics - Anfänger-Themen 2
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
I Java, Application, Eclipse (Anfänger) Java Basics - Anfänger-Themen 1
M Java Anfänger - Video Tutorial Reihe (DEUTSCH) Java Basics - Anfänger-Themen 11
C Anfänger: Array + Klasse Java Basics - Anfänger-Themen 5
S OOP Uhrenanzeige programmieren, Achtung Anfänger! Java Basics - Anfänger-Themen 9
B Compiler-Fehler Ein Java-Eclipse-Anfänger geht auf Reisen... Java Basics - Anfänger-Themen 10
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
I totaler Anfänger braucht Hilfe Java Basics - Anfänger-Themen 8
I Erste Schritte Bücher für Jungedliche[Anfänger] Java Basics - Anfänger-Themen 20
T Hallo anfänger braucht Hilfe :D Java Basics - Anfänger-Themen 7
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
D error: Class names, >>>HILFE, anfänger<<< Java Basics - Anfänger-Themen 4
J Hilfe für Anfänger Java Basics - Anfänger-Themen 8
E OOP Methode an andere Methode übergeben / OOP Anfänger Java Basics - Anfänger-Themen 4
Farbenfroh Exceptions Anfänger - Finde Fehler nicht Java Basics - Anfänger-Themen 7
H MergeSort (für Anfänger ) Java Basics - Anfänger-Themen 9
X Projekt Java Anfänger Java Basics - Anfänger-Themen 28
C Fehlersuche Adressbuch *Anfänger* Java Basics - Anfänger-Themen 5
C Anfänger braucht Hilfe bei Schularbeit Java Basics - Anfänger-Themen 3
J Erste Schritte Hilfe bei absolutem Anfänger-Projekt Java Basics - Anfänger-Themen 4
F Anfänger braucht Hilfe Java Basics - Anfänger-Themen 24
A Erste Schritte Übungen für Anfänger Java Basics - Anfänger-Themen 31
M Sieb des Eratosthenes für Anfänger Java Basics - Anfänger-Themen 10
M Tipps für einen Java-Anfänger Java Basics - Anfänger-Themen 5
S Anfänger Aufgaben Java Basics - Anfänger-Themen 6
G Anfänger-Errors und Fragen Java Basics - Anfänger-Themen 22
S Java für Anfänger: Probleme mit read() Java Basics - Anfänger-Themen 20
P [Anfänger] DiceGame Aufagbe Java Basics - Anfänger-Themen 23

Ähnliche Java Themen

Neue Themen


Oben