Wie kann ichWerte einer Schleife in einem Array speichern?

...komplette Frage anzeigen

3 Antworten

Hi,

dein Problem liegt darin, dass du nur den letzten Wert den du eingelesen hast in dein Array speicherst.

    for(int i= 0; i<10; i++)
{
System.out.println("Geben Sie die Zahl ein");
zaehler = scn.nextInt();

}

Hier durchläufst du 10 mal deine Schleife. Jedesmal kann man eine Zahl eingeben und du speicherst diese in die Variable zaehler.

Das heißt du überschreibst jedesmal die Variable. Gebe ich beim letzten Durchlauf nun die Zahl 10 ein. Dann steht zum Schluss in deiner zaehler Variable nur der Wert 10 drin. Die vorherigen Eingaben wurden alle überschrieben. 

    int [] ergebnis1 = {zaehler}; 

Mit diesem Befehl erzeugst du nun ein Array, dass du mit zaehler initialisierst. Sprich ergebnis1 hat die Länge 1 und beinhaltet (in meinem Beispiel) lediglich die 10. 

Was du nun tun musst, ist das Array vor deiner Schleife zu deklarieren und dann innerhalb der Schleife die zaehler Variable im Array abzuspeichern. 

Gruß

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von marioboeck
31.08.2016, 13:01

import java.util.Scanner;

public class Aufgabe51 {

public static void main(String[] args) {
Scanner scn= new Scanner(System.in);

int zaehler = 0;
int[] ergebnis1 = {10};

for(int i = zaehler; i<10; i++)
{
System.out.println("Geben Sie die Zahl ein");
zaehler = scn.nextInt();

}

???

0
Kommentar von adenosi
31.08.2016, 14:42

Kannst du mir kurz sagen wie man dieses blauen Kasten für den Source Code in seiner Antwort benutzt?

0

Wenn du Werte in einer Array speichern willst, solltest du zuvor erst einmal die Größe der Array wissen, aber laut deinem Code weißt du diese bereits:


10

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


Entsprechend solltest du die Array vor deiner Schleife initialisieren und zwar mit der Länge:

int arrayGroesse = 10;
int[] ergebnis1 = new int[arrayGroesse];

Hiermit erhälst du eine Array mit 10 leeren Einträgen. - Diese Kannst du mit deiner Schleife befüllen:

for (int i = 0; i < ergebnis1.length; i++) {
   ergebnis1[i] = scn.nextInt();
}


Antwort bewerten Vielen Dank für Deine Bewertung

Du solltest das Array vor der Schleife deklarieren mit Anzahl an Elementen in Höhe von 10. Füllen kannst es dann mit "ergebnis1[i] = zaehler;" in der Schleife.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?