Erste Schritte Dynamisches Array

cdings

Aktives Mitglied
hi leute!
ich möchte gerne ein dynamisches array erstellen, welches dann mit der for-schleife abgefragt wird.

ich geb mal hier ein beispiel wie ich mir das vorgestellt habe:
(habe mit der suchmaschine meines vertrauens gesucht (ixquick.com) aber irgendwie gar nichts dazu gefunden!


Code:
 import java.util.Scanner;

class KD
{
	public static void main (String[] args)
	{
		//Eingabe
		String Eingabe;
		Scanner scan = new Scanner(System.in);
		
		//Variablen 
		int [] Grad;
die variable Grad soll das Array sein.
wenn man bspw. eine 3 eingibt, soll die for-schleife 3 mal durchlaufen werden.

for(int i = 0; i < Grad.length; Grad++)
{
System.out.println((Grad)."durchlauf");

}

und mit jedem durchlauf der schleife soll sich eine "anfangsvariable verändern"
beispielsweise: ich gebe die 3 per scannerklasse in das array ein, dann soll nach dem ersten durchlauf der buchstabe "a"; nach dem 2. durchlauf der buchstabe "b"; beim 3. durchlauf der buchstabe "c"; etc. erscheinen.

ich hoffe ihr könnt mir da etwas unter die arme greifen!


mfg


edit: also quasi:
1. Durchlauf: geben sie eine zahl für A ein.
2. Durchlauf: geben sie eine Zahl für b ein.
3.Durchlauf: geben sie eine Zahl für c ein.
 
Zuletzt bearbeitet:
Also ich bin mir nicht ganz sicher was du mit "dynamischem array" meinst. Falls du meinst das du das Array beliebig erweitern kannst während der Laufzeit, dann muss ich dich leider enttäuschen. Ein Array musst du mit einer festen Größe initialisieren und dann bleibt das array so. Für das "dynamische" müsstest du Listen verwenden. Linkedlist oder Arraylist z.B...

Dann zu deinem Problem, du musst das Array erstmal initialiseren. Sprich:

Java:
int [] Grad = new int[3];

z.B.

Dann kannst du das Array mit der for schleife durchlaufen und einfach mit Werten füllen. Natürlich auch mit der Eingabe via Scanner.
Einfach mit

Java:
eingabe = scan.nextInt();

Das ganze einfach in der Schleife dem array grad zuweisen und fertig.

Zusammenbauen darfst du das ganze selber 🙂 Denke da ist der Lerneffekt höher.
 
Zuletzt bearbeitet:
hi, und danke für die antwort!

kann ich das array nicht per eingabe initialisieren?

also sprich: anfangs ist das array noch leer und dann solls halt befüllt werden.
ich wills ja nicht von anfang an mit dem wert "3" befüllen.
das soll der user selber entscheiden, welcher wert dem array zugeteilt wird.
 
Zuletzt bearbeitet:
Befüllen tust du das Array ja gar nicht mit dem Wert 3, sondern du sagst dem Array das es 3 Felder hat. Natürlich kann der Benutzer das dann auch machen.

Java:
eingabe = scan.nextInt();
int [] Grad = new int[eingabe];
 
Wenn ich dein Beispiel anwende, sagt mein Compiler beim Array-Integer-Wert:

"not a statement"

Code:
 import java.util.Scanner;

class Test
{
	public static void main (String[] args)
	{
		//Eingabe
		String Eingabe;
		Scanner scan = new Scanner(System.in);
		
		//Variablen 
		int [] Grad = new int[eingabe];
		
	     System.out.println("Wie viele Felder soll das Array haben?")
	     Grad = scan.nextInt();
	     
	     System.out.println("Das Array hat" +Grad+ "Felder")
	   }
}
 
Zuletzt bearbeitet:
Also erstmal musst du die Eingabe für die Arraygröße vor der Initialisierung des Arrays setzen.. dann funktioniert die [] Klammerung nicht richtig im Forum... Daher diese komischen [ usw..

Code:
 import java.util.Scanner;

class Test
{
	public static void main (String[] args)
	{
		//Eingabe
		int eingabe;
		Scanner scan = new Scanner(System.in);
		
                      System.out.println("Wie viele Felder soll das Array haben?");
	           eingabe = scan.nextInt();

		//Variablen 
		int [] Grad = new int[eingabe];
		
	     
	     
	     System.out.println("Das Array hat" + eingabe + "Felder");
	   }
}

Ausserdem heißt dein Array schon "grad".. sprich die Grenze kann nicht auch "grad" heißen sondern eben eingabe..


Edit: im übrigen muss eingabe auch vom Typ int sein wenns ne Zahl sein soll..
 
Zuletzt bearbeitet:
Du könntest auch besser die Abfrage via grad.length machen.

Sprich

Code:
 System.out.println("Das Array hat " + Grad.length + " Felder");

Ist etwas schöner
 
hi,
jetzt funktioniert alles!
nur mit der for-schleife noch nciht wirklich.
wenn ich dem array 3 felder zuweise, soll die schleife ja schließlich 3 mal durchlaufen werden...

aber irgendwie... :bahnhof:

Code:
    import java.util.Scanner;

class Test
{
	public static void main (String[] args)
	{
		//Eingabe
		String eingabe;
		Scanner scan = new Scanner(System.in);
		
		//Variable
		int array = 0;
		int [] Grad = new int[array];
		
		
                      System.out.println("Wie viele Felder soll das Array haben?");
	           array = scan.nextInt();

		
   		for (int i = 0; i < array.length; i++ )  
   		{
			System.out.println("okok");
		}
	     
	     
	     System.out.println("Das Array hat" +array+ "Felder");
	     
	     
	     
	   }
}
 
schau doch mal was du da abfragst... du machst eine variable array = 0.. warum? Somit ist deine arraygröße immer 0 Dann hast du die Abfrage wieviele Felder dein Array haben soll wieder unter die Initialisierung deines Arrays gesetzt.. dann heißt dein Array "Grad" und du läufst in der Schleife bis array.length.. du musst aber bis Grad.length laufen..

Lies dir bitte die Grundlagen zu arrays richtig durch.
 
wenn ich einfach nur :

int [] Grad = new int[array];

schreibe, dann steht da: "variable array might not have been initialized"
 
Zuletzt bearbeitet:
Also erstmal musst du die Eingabe für die Arraygröße vor der Initialisierung des Arrays setzen.. dann funktioniert die [] Klammerung nicht richtig im Forum... Daher diese komischen [ usw..

Code:
 import java.util.Scanner;

class Test
{
	public static void main (String[] args)
	{
		//Eingabe
		int eingabe;
		Scanner scan = new Scanner(System.in);
		
                      System.out.println("Wie viele Felder soll das Array haben?");
	           eingabe = scan.nextInt();

		//Variablen 
		int [] Grad = new int[eingabe];
		
	     
	     
	     System.out.println("Das Array hat" + eingabe + "Felder");
	   }
}

Ausserdem heißt dein Array schon "grad".. sprich die Grenze kann nicht auch "grad" heißen sondern eben eingabe..


Edit: im übrigen muss eingabe auch vom Typ int sein wenns ne Zahl sein soll..

Lies bitte was ich schreibe..

erst eine Variable eingabe .. dann mit scan.nextInt() die Eingabe einpflegen.. dann das Array mit der grenze "eingabe" initialisieren.. dann die Schleife bis grenze Grad.length laufen lassen..

Ehrlich du musst genauer lesen und versuchen zu verstehen..
 
das ist doch grad der springende punkt worauf ich hinaus will.

die arrays an sich raffe ich ja aber nicht wie ich diese "manuell" -im programmablauf - befüllen kann.

z.b.:
Code:
  import java.util.Scanner;

class Test
{
	public static void main (String[] args)
	{
		//Eingabe
		String eingabe;
		Scanner scan = new Scanner(System.in);
		
		//Variable
		
		int [] Grad = new int[5];
		
		
                   //   System.out.println("Wie viele Felder soll das Array haben?");
	           // array = scan.nextInt();

		
   		for (int i = 0; i < Grad.length; i++ )  
   		{
			System.out.println("okok");
		}
	     
	     
	     System.out.println("Das Array hat" +Grad.length+ "Felder");
	     
	     
	     
	   }
}

so funktioniert das alles ausgezeichnet und ist auch alles einleuchtend.
aber vll. möchte ich mich ja auch mal für 3 felder entscheiden.
und da komm ich halt nicht weiter



edit ----> ich weiß nciht wie man sich bedankt 🙁
 
Zuletzt bearbeitet:

Zurück
Oben