Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich habe eine Aufgabe, in der ich eine TAN-Liste erstellen soll. Diese möchte ich mit einem Array erstellen. Jedes Feld des Arrays soll dabei mit zufälligen Zahl befüllt werden.
Das ganze möchte ich als Methode verpacken, welche mir dann wieder ausgegeben wird und somit eine TAN-Liste als Ausgabe möglich ist.
Nun mein Problem:
Ich habe folgendes geschrieben:
Java:
class Bank {
final int tan = 100;
// TAN-Einschränkung auf 100000-999999
int tanZahlx() {
int tanzahl = ((int) (Math.random()) * 900000) + 100000;
return tanzahl;
}
// TAN-Liste-Erzeugung
public int tanListe() {
int tanZahl;
int [] tanListe;
tanListe = new int[tan];
for (int i = 0; i < tanListe.length; i++) {
tanListe[I] = tanZahlx();
return tanZahl + tanListe.length;
}
}
}
die return-Anweisung ist falsch, dass ist mir klar, jedoch finde ich keinen Weg wie die Methode tanList() mit einer return-Anweisung abschließen kann.
Könnte mir bitte jemand erklären, wie ich diese Methode zum laufen bringe?
Der Rückgabetyp der Methode muss mit dem Typ der Return Anweisung übereinstimmen.
Also wenn du ein Int Array zurückgeben willst, muss die Methode auch vom Typ Int Array sein.
Außerdem mischt du mehrmals Datentypen.
z.B. funktioniert
Java:
tanListe = tanZahlx();
nicht, da tanListe ein Array ist und du nur einen einzelnen Wert übergibst.
Zu dem was MWin123 schon erwähnt hat kommt noch das deine Methode die Liste nicht komplett füllen würde sondern nur den Ersten wert. Das return muss nach der schleife kommem
ahh...alles klar und vielen Dank.
Das erklärte mir jetzt auch die Meldung vom Compiler, dass []int nicht in int umgewandelt werden kann.
Was den zweiten Teil angeht:
tanListe = tanZahlx();
Hiermit soll ja das jeweilige Feld, welches durch die For-Schleife läuft mit einer Zufallszahl aus der Methode tanZahlx() erzeugt werden, welche einen int-Wert ausgibt. Ich verstehe, dass hier die Datentypen vermischt werden, weil wie du sagtest []int != int, aber irgendwie müssen ja die Zahlen in das Array geraten. Deshalb habe ich die Methode an tanListe verwiesen.
Zu dem was MWin123 schon erwähnt hat kommt noch das deine Methode die Liste nicht komplett füllen würde sondern nur den Ersten wert. Das return muss nach der schleife kommem
Nimm eine ArrayList<int> als Rückgabewert. Dann zählst du in einer i-Schleife von 0 bis tan und machst bei jedem Durchlauf ein add in die ArrayList, z.B.
Java:
ArrayList<Integer> tanListe = new ArrayList<Integer>();
for (int i=0;i<tan;i++) {
tanListe.add(tanZahlx());
}
return tanListe;
Nimm eine ArrayList<int> als Rückgabewert. Dann zählst du in einer i-Schleife von 0 bis tan und machst bei jedem Durchlauf ein add in die ArrayList, z.B.
Java:
ArrayList<Integer> tanListe = new ArrayList<Integer>();
for (int i=0;i<tan;i++) {
tanListe.add(tanZahlx());
}
return tanListe;