Zum Forum springen
Benachrichtigungen
Alles löschen

kurze JAVA Frage

32 Beiträge
13 Benutzer
0 Reactions
1,786 Ansichten
Kommutierung
Beigetreten: 09.08.2007
Oldschool Grinder

Hi,
mühe mich gerade durch die java anfänge und frage mich, gibt es eine Möglichkeit innerhalb der folgenden for-schleife variablen mit fortlaufendem Index (abhängig von i) anzulegen?
Also z.B. e0, e1, e2, e3, ...

for (i=0; i<10; i++)
System.out.print("\nEnter variable #:"+i);
int ei = Input.readInt();


Antwort
Zitat
31 Antworten
siouxx
Beigetreten: 25.07.2008
PokerStrategist

geht meines wissens nach nur über ein array.


Antwort
Zitat
Kommutierung Themenstarter
Kommutierung
Beigetreten: 09.08.2007
Oldschool Grinder

ok...und wie? :f_cool:


Antwort
Zitat

Original von siouxx
geht meines wissens nach nur über ein array.

kenne java syntax nicht, daher pseudocode

a = array(12)

for(i=0;i<a.size;i++) {
input = get_input
a = input
}

ansonsten geht das mit "e0" "e1" über eval. aber eval ist evil


Antwort
Zitat
Teude
Beigetreten: 09.11.2010
PokerStrategist

könntest das ganze auch anstatt in ein array in ne liste packen....


Antwort
Zitat

Original von Teude
könntest das ganze auch anstatt in ein array in ne liste packen....

was total fail ist, denn dafür sind listen nicht gedacht sondern für genau die fälle sind arrays am start. zusammenfassung gleicher datentypen.


Antwort
Zitat
flowIIpoker
Beigetreten: 14.02.2007
PokerStrategist

kenn mich nicht so in java aus, hab aber mal bei jemanden gesehn, das der was mit vector gemacht hatte


Antwort
Zitat
sarc
Beigetreten: 06.06.2008
PokerStrategist

Erschreckend, wie viele Posts hier mit "ich kenn mich da nicht aus, aber..." anfangen...

int[] e = new int[10];
for (i=0; i<10; i++)
System.out.print("\nEnter variable #:"+i);
e = Input.readInt();

Alles andere, was man sonst noch nehmen könnte, macht erst Sinn, wenn beispielsweise die Größe des Arrays nicht vorher schon bekannt ist.


Antwort
Zitat
Kommutierung Themenstarter
Kommutierung
Beigetreten: 09.08.2007
Oldschool Grinder

danke erstmal
naja, größe des arrays ist glaub ich vorher noch nicht bekannt, soll irgendso ein jagged array dings werden oder so, jedenfalls zu hoch für mich.


Antwort
Zitat
sarc
Beigetreten: 06.06.2008
PokerStrategist

Na ja, in dem Beispiel wars bekannt... ;) Wenn das beliebig groß werden kann und vorher nicht berechnet werden kann, such dir in der API ArrayList raus und nimm das.


Antwort
Zitat
n0ghtmare
Beigetreten: 28.11.2010
Poker Player

Wenn du den Ansatz mit Arrays haben willst, dann ist die Lösung von sarc fast richtig. Vor dem System.out.print und nach dem e=.... noch Klammern mit { }. Sonst ist die For - Schleife nur aus einer einzigen Zeile bestehend, nämlich dem Syso.

BESSER ist aber ein Ansatz mit Listen, da du bei solchen Eingaben die Anzahl der Einträge nicht kennst. Hier nen Beispiel:

ArrayList<Integer> e = new ArrayList<Integer>();

for(int i = 0; i < e.size(); i++){
System.out.print("\nEnter variable #:"+i);
e.add(Input.readInt());
}


Antwort
Zitat

ja fast richtig


Antwort
Zitat
n0ghtmare
Beigetreten: 28.11.2010
Poker Player

Ah, die Abbruchbedingung bei mir in der For - Schleife stimmt natürlich nicht. e.size() ist nachm Initialisieren natürlich 0. Dann müsstest du es mit ner while - Schleife lösen und dir ne gescheite Abbruchbedingung überlegen. Zum Beispiel, wenn der Benutzer was bestimmtes eingibt oder so.


Antwort
Zitat
yinpin
Beigetreten: 10.02.2011
PokerStrategist

Original von marketoring

Original von Teude
könntest das ganze auch anstatt in ein array in ne liste packen....

was total fail ist, denn dafür sind listen nicht gedacht sondern für genau die fälle sind arrays am start. zusammenfassung gleicher datentypen.

:f_confused:


Antwort
Zitat
n0ghtmare
Beigetreten: 28.11.2010
Poker Player

Also ungefähr so:

ArrayList<Integer> e = new ArrayList<Integer>();
int abbruchZeichen = .... ;//denk dir was aus
int input;
int i = 0;

while(input!=abbruchZeichen){
System.out.println("Enter variable: " + i);
input = System.in.read();
e.add(input);
i++;
}

Hab die zwei Zeilen in der Schleife übrigens auch mal angepasst. Die eine war nicht ganz sauber und die andere nicht ganz richtig. Jetzt müsste es gehen. Damit hättest du allerdings auch die Abbruchbedingung dann in deiner Liste. Um dieses wegzuhaben, hauste nach der While - Schleife noch e.remove(e.size()-1) rein.

Hoffe, ich konnte dir helfen :)


Antwort
Zitat
sarc
Beigetreten: 06.06.2008
PokerStrategist

Probleme an deinem Code:

1. Als absoluter Anfänger, der gerade Java lernt, wird er nichts aus der API kennen.
2. Als absoluter Anfänger wird er mit Generics noch viel weniger anfangen können.
3. Es dürfte den User verwirren, dass er, wenn er zum Beispiel "12" eingibt, danach 49, 50 und möglicherweise auch noch 10 drinstehen hat (genau weiß ichs ausm Kopf ned...). Sein vorheriges Beispiel sollte dagegen funktionieren (ich gehe schwer davon aus, dass hier eine Hilfsklasse Input zur Verfügung gestellt wurde, wurde zumindest bei mir damals so ähnlich gemacht...).


Antwort
Zitat
Kommutierung Themenstarter
Kommutierung
Beigetreten: 09.08.2007
Oldschool Grinder

danke nochmals, und gleich noch ne frage :)
wie erstellt man ein 2 dimensionales "jagged" array?
y koordinate is auf 10 fixiert und x soll random zahl 2-10 sein.

für random zahl nehmen wir java.util.Random


Antwort
Zitat
FiftyBlume
Beigetreten: 06.06.2010
PokerStrategist

int[][] jaggedArray = new int[10][10]

Damit bekommst du ein Array, dass aus 10 Objekten besteht, die wiederum selbst aus einem integer-Array der Länge 10 besteht.

kA, wie ihr jetzt genau befüllen sollt, aber ich nehme mal an, dass alle Felder voll werden sollen:

for(j=0; j<10; j++)

{
for(i=0; i<jaggedArray[0].size(); i++)
{jaggedArray[j]= //whatever deine Random Zahl kreiert....;}

}


Antwort
Zitat

Original von FiftyBlume
for(j=0; j<10; j++)

{
for(i=0; i<jaggedArray[j].size(); i++)
{jaggedArray[j]= //whatever deine Random Zahl kreiert....;}

}

fyp


Antwort
Zitat
Kommutierung Themenstarter
Kommutierung
Beigetreten: 09.08.2007
Oldschool Grinder

erstellt das dann zB sowas:
(angenommen in jedem erstellten "feld" ist ein -, und x länge random)
----
-------
---
----------
----------
-------
------
--
---------
--------

Edit:
int[][] jaggedArray = new int[10][10]
bedeutet doch das ein 10x10 array erstellt wird und kein 10xrandom, oder?


Antwort
Zitat
Teilen: