ich verstehe array nicht!

Thunderflame

Mitglied
Hallo,



ich hab vor kurzem Java angefangen und bin auf eine Sache im Java Buch (für Anfänger) gestoßen, die ich nicht verstanden habe. :(



Java:
          package glueck2;



public class Lotto2 

{

  public static void main(String[] args) 

  {
   
    final int ANZAHL = 6;
      final int MAX = 49;
    int[] Lotto = new int[MAX+1];
    int Zufall = 0;
   // den Teil in der for Schleife habe nicht verstanden
    for (int i = 1; i < Lotto.length; i++) 
    Lotto[i] = 0;
    for (int Nr = 1; Nr <= ANZAHL; Nr++) 
    {
      do 
      {  
    	Zufall = (int)(Math.random()*MAX)+1;
      } 
      while (Lotto[Zufall] == 1);
      Lotto[Zufall] = 1;     
      System.out.println (Nr + ". Ziehung: " + Zufall);
    }

  }

}

Ich hoffe ihr könnt mir helfen.
 

XHelp

Top Contributor
Also den Kot... öhm Code würde ich auch nicht verstehen.
Aber was genau verstehst du nicht? (Und wo ist das da überhaupt her?)

Edit: lesen sollte man können.... :oops:
Stamm das wirklich 1zu1 aus einem Buch? oO
 
Zuletzt bearbeitet:

Thunderflame

Mitglied
Java:
 for (int i = 0; i < Lotto.length; i++) 
    Lotto[i] = 0;   //   den Teil verstehe nicht  [i]

Array verstehe irgendwie nicht.
Jep stammt 1zu1 aus dem Buch :D
 

XHelp

Top Contributor
Aus welchem Buch?
Es könnte vlt an fehlenden Klammern liegen:
Java:
for (int i = 0; i < Lotto.length; i++) {
  Lotto[i] = 0;
}
Da gehst du eben das ganze Array durch und setzt jeden Wert auf 0. Es mag vlt komisch aussehen, dafür macht es aber absolut kein Sinn.
 

Fu3L

Top Contributor
Eine kleine Metapher zum Verständnis:

Wenn eine Variable eine Kiste ist, in die du einen Wert einfüllen kannst (zum Beispiel eine Zahl), dann ist ein Array ein Schrank mit vielen Schubladen. Dabei ist jede Schublade von 0 an beginnend nummeriert und stellt eine eigene Schachtel für einen eigenen Wert dar.
 

Landei

Top Contributor
Ein Array ist eine durchnumerierte Reihe Spinde. Die Numerierung fängt bei 0 an, die Anzahl Spinde muss vorher feststehen, und das Array hat auch einen bestimmten Element-Typ, das heißt, man kann nur eine Art von Objekten (oder Primitiven) hineinpacken. Um etwas wieder herauszuholen, muss man natürlich die Spind-Nummer wissen - oder die ganze Reihe durchsuchen.

Ein Array, in das 10 Tafeln Schokolade passen: [c]Schololade[] array = new Schokolade[10];[/c]. Achtung, an dieser Stelle ist das Array zwar da, aber alle Spinde sind leer (enthalten also [c]null[/c] - oder bei Zahlen 0 oder bei booleans false).

Wir erzeugen eine Ritter Sport und packen sie in Spind Nummer fünf: [c]array[5] = new Schokolade("Ritter Sport");[/c]

Wir lesen den Inhalt von Spind Nummer fünf aus: [c]Schokolade schokolade = array[5];[/c]

Jetzt packen wir in Spind Nummer fünf eine Lindt: [c]array[5] = new Schokolade("Lindt");[/c]

Eigentlich ganz einfach...
 
Zuletzt bearbeitet:

Volvagia

Top Contributor
Oo Ich glaube der Autor des Buches hat zu viel Freizeit.

Noch ein paar Tips:

XHelp und Landei haben es schon gesagt, die erste Schleife ist absolut sinnlos.
Deklariere Variablen nur dort, wo sie auch gebraucht werden. Das schafft Übersichtlichkeit. Also Zufall z. B. in der 2. for.
Variablen ausnahmslos immer klein schreiben.
Setze auf eigene Methoden. Methoden kommentieren den Source alleine schon durch ihren Namen und können sehr leicht wiederverwendbaren Code auslagern. -> Weniger Arbeit, mehr Übersichtlichkeit, leichtere Anpassungsfähigkeit.
Verwende bessere Variablenamen. Wie Methoden sollten diese den Code auch teilweiße kommentieren, es sollte auch nach langer Zeit auf Anhieb klar sein wozu eine Variable gebraucht wird. Lotto klingt eher nach Klasse (bilde ich mir vielleicht nur wegen den großgeschriebenen Namen ein), aber soetwas wie gezogeneLottoKugeln wäre schon wesendlich deutlicher. Wobei mir bei der Anwendung auch kein wirklich vernünftiger Name einfällt.
Verwende als Anfänger immer Klammern, das vermeidet Fehler. Später kannst du sie wenn du willst weglassen. Steht zwar in den Coding Convensions, ist aber keine so wichtige Regel wie die Groß/Kleinschreibung.
Das liegt zwar nicht an dir, aber kann mir jemand erklären, warum er ein Array mit 50 Feldern erzeugt und niemals auf Feld 0 zugreift? o_O


Im Endeffekt könnte es dann so aussehen:

Java:
public class Lotto2 
{
	private static final byte GEZOGENE_KUGEL_ANZAHL_SOLL = 6;
	private static final byte MAX_ZAHL = 49;
	
	public static void main(String[] args) 
	{
		byte[] lottoKugelnNumberRepres = new byte[MAX_ZAHL];
		generiereKugelRepres(lottoKugelnNumberRepres);
		mischeKugelnRepres(lottoKugelnNumberRepres);
		zieheNumern(lottoKugelnNumberRepres);
	}
	private static void zieheNumern(byte[] lottoKugelnNumberRepres)
	{
		for(byte b = 0; b < GEZOGENE_KUGEL_ANZAHL_SOLL; b++)
			System.out.println("Kugel " + (b + 1) + ".: " + lottoKugelnNumberRepres[b]);
	}
	private static void mischeKugelnRepres(byte[] lottoKugelnNumberRepres)
	{
		//TODO: "Bubbleshuffle", das kann sicher noch optimiert werden.
		
		for(byte b = 0, size = (byte) lottoKugelnNumberRepres.length; b < size; b++)
		{
			int zufall = (int) (Math.random() * size);
			
			byte cache = lottoKugelnNumberRepres[zufall];
			lottoKugelnNumberRepres[zufall] = lottoKugelnNumberRepres[b];
			lottoKugelnNumberRepres[b] = cache;
		}
	}
	private static void generiereKugelRepres(byte[] lottoKugelnNumberRepres)
	{
		for(byte b = 0; b < MAX_ZAHL; b++) {
			lottoKugelnNumberRepres[b] = (byte) (b + 1);
		}
	}
}
 
D

despikeexd

Gast
leicht OT

Warum im Code in der for() der Zähler bei 1 beginnt ist klar ... weil das Array durch MAX+1 (49+1) gesamt 50 groß ist ... wodurch bei nem lauf von 1 bis 50 wieder 49 rauskommen.
Das hier nicht gleich darauf eingegangen wird das Array bei 0 beginnen liegt denke ich mal daran das das buch scheinbar für jüngere Personen geschrieben ist die sich den Grund dahinter nicht erklären können. Daher wird vermutlich der einfachheit halber bei 1 angefangen was natürlich eigentlich falsch ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Erste Schritte Array.length[x] in einer Schleife - ich verstehe das nicht Java Basics - Anfänger-Themen 1
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
nbergmann x /= n : Verstehe ich nicht. Java Basics - Anfänger-Themen 24
S Schulaufgabe - verstehe leider die Aufgabe nicht Java Basics - Anfänger-Themen 4
ZH1896ZH Verstehe verschieden Scanner und hasNext() nicht ganz Java Basics - Anfänger-Themen 2
ZH1896ZH OOP Verstehe nicht was der Hinweis bedeutet, bitte um Hilfe! Java Basics - Anfänger-Themen 2
A Hilfe bei Rekursion,Ich verstehe nicht,wie funktioniert die Rekursion in der Methode "walk" Java Basics - Anfänger-Themen 13
A Shopping Cart Programm. Verstehe einige Zusammenhänge nicht Java Basics - Anfänger-Themen 1
T Brauche Hilfe um ein Programm zu verstehe Java Basics - Anfänger-Themen 4
K Erste Schritte Ich verstehe das Summenprogramm nicht Java Basics - Anfänger-Themen 10
S Ich verstehe die RegEx Tabelle von Javadoc nicht so ganz Java Basics - Anfänger-Themen 3
Y Erste Schritte Ich verstehe this. nicht so richtig Java Basics - Anfänger-Themen 5
DaCrazyJavaExpert Methoden Verstehe Feheler nicht! Java Basics - Anfänger-Themen 7
Henri ich verstehe gerade nicht die Methode Java Basics - Anfänger-Themen 6
dave253 Ich verstehe folgenden Code nicht.. Java Basics - Anfänger-Themen 12
V Verstehe die Lösung einer Aufgabe von Grunkurs-Java nicht. Java Basics - Anfänger-Themen 11
J Verstehe die NullPointerException nicht Java Basics - Anfänger-Themen 1
J Verstehe meine HashSet Ausgabe nicht Java Basics - Anfänger-Themen 5
P Verstehe Lösung einer Aufgabe von "Grundkurs-Java" nicht Java Basics - Anfänger-Themen 5
O Ich verstehe nicht, was Eclipse von mir will Java Basics - Anfänger-Themen 10
G Methoden Verstehe nicht was in der Methode gemacht wird? Java Basics - Anfänger-Themen 5
M Verstehe das Programm(Quellcode) nicht!! Java Basics - Anfänger-Themen 12
B Verstehe ZufallInt = (int) (Math.random() * 5 + 1); nicht Java Basics - Anfänger-Themen 9
J Rekursiver Horner-Schema-Algorithmus - Verstehe ich ihn richtig? Java Basics - Anfänger-Themen 2
F verstehe diese Variable nicht... Java Basics - Anfänger-Themen 4
A Codezeile die ich nicht verstehe Java Basics - Anfänger-Themen 7
Pentalon Ein Aufruf den ich nicht verstehe Java Basics - Anfänger-Themen 11
V Verstehe die Logik nicht ... Java Basics - Anfänger-Themen 30
C rekursive Methode verstehe nicht! Java Basics - Anfänger-Themen 3
B verstehe methode nicht methode Java Basics - Anfänger-Themen 2
B Erste Schritte Verstehe das nicht Java Basics - Anfänger-Themen 3
C verstehe get und set nicht Java Basics - Anfänger-Themen 3
J Interface Wie funktioniert das mit den Interfaces. Ich verstehe es einfach nicht! :( Java Basics - Anfänger-Themen 15
P for Schleife mit break, verstehe die Ausgabe nicht Java Basics - Anfänger-Themen 6
A Verstehe readLine()-Funktion nicht Java Basics - Anfänger-Themen 3
A Verstehe das GUI nicht! Java Basics - Anfänger-Themen 7
D Verstehe Zusammenhang nicht- Und ihr? Java Basics - Anfänger-Themen 4
M THREADS - Ich verstehe es nicht Java Basics - Anfänger-Themen 10
T Verstehe Bufferreader prinzip nicht Java Basics - Anfänger-Themen 3
E I-JVM verstehe ich das richtig (bytecode aufgabe) Java Basics - Anfänger-Themen 2
M Verstehe Aufgabe nicht, wie kann man schleifen einbauen? Java Basics - Anfänger-Themen 5
N Verstehe Step10 bei jME Eclipsetutorial nicht Java Basics - Anfänger-Themen 4
L Verstehe den Wert nicht! If-Anweisung Java Basics - Anfänger-Themen 5
N Verstehe diese Aufgabe nicht! Java Basics - Anfänger-Themen 16
Rudolf Verstehe das Ergebnis nicht - bitte erklären Java Basics - Anfänger-Themen 7
S Finde den Fehler nicht/ verstehe Anweisung nicht Java Basics - Anfänger-Themen 12
K Ich verstehe switch einfach nicht Java Basics - Anfänger-Themen 4
C Verstehe Code-Teil nicht. Java Basics - Anfänger-Themen 2
S Ich verstehe diese Methode nicht! Java Basics - Anfänger-Themen 6
G Verstehe das nicht. bitte um hilfe Java Basics - Anfänger-Themen 13
R Thread startet nicht, verstehe nicht warum Java Basics - Anfänger-Themen 2
R Verstehe die Ausgabe von folgendem Code nicht Java Basics - Anfänger-Themen 4
A verstehe aufgabenstellung nicht! Java Basics - Anfänger-Themen 47
S verstehe den fehler nicht Java Basics - Anfänger-Themen 14
C Verstehe die Syntax nicht! Java Basics - Anfänger-Themen 2
M Verstehe den Quellcode nicht ganz Java Basics - Anfänger-Themen 3
7 Verstehe Programm nicht Java Basics - Anfänger-Themen 6
G verstehe das problem nicht :( Java Basics - Anfänger-Themen 4
S RegEx Syntax - ich verstehe sie einfach nicht! Java Basics - Anfänger-Themen 3
G verstehe den unterschied zwischen equals und == nicht Java Basics - Anfänger-Themen 3
E Verstehe eine Schleife nicht Java Basics - Anfänger-Themen 5
B Eine Linie zeichnenmit Java, ich verstehe das einfach nicht Java Basics - Anfänger-Themen 4
G Verstehe einen Aufruf absolut nicht Java Basics - Anfänger-Themen 2
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
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
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
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben