Wie kann ichWerte einer Schleife in einem Array speichern?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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ß

marioboeck 
Fragesteller
 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
DarkNightmare  31.08.2016, 17:24
@marioboeck

Hi,

noch zu keiner Lösung gekommen? 

int[] ergebnis1 = {10}; 

Das ist im Grunde genau das gleiche wie vorher. Nur das du hier das Array ergebnis1 gleich mit der 10 initialisierst. 

Dieser Befehl müsste so aussehen:

  int [] ergebnis1 = new int [10];

Damit deklarierst du ein int Array ergebnis1 mit 10 Elementen vom Typ int. 

Innerhalb deiner Schleife kannst du ganz einfach dein Array befallen indem du die Schleife damit ergänzt:

 ergebnis1[i] = zaehler; 

Die Variable i wird ja automatisch hochgezählt. Also zeigen wir nun auf jedes Element in deinem Array und speichern dort die zaehler Variable ab. 

Also ist dein ganzer Code:

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

int zaehler = 0;
int [] ergebnis1 = new int [10];

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

Gruß

0
marioboeck 
Fragesteller
 01.09.2016, 09:00
@marioboeck

i cannot be resolved to a variable

Das gibt er mir jetzt als Fehlermeldung aus. 

0
DarkNightmare  02.09.2016, 09:29
@marioboeck

Hm,

in welcher Zeile gibt es einen Fehler bei dir? Also wo wird die exception geschmissen? 

Habe es gerade mal in Eclipse eingefügt, ich bekomme de Fehler nicht. 

Gruß

0
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
DarkNightmare  31.08.2016, 17:26
@adenosi

Wenn du eine Kommentar schreibst, befindet sich über dem kleinen Textfeld eine Leiste. Klick auf das Code Symbol  <> . 

0

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.

Woher ich das weiß:Berufserfahrung – Programmierer

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();
}