# Eingabe in Array speichern und Ausgeben



## KuchenBoss (8. Nov 2017)

Hi Leute.

Ich lerne gerade etwas (bin noch ziemlich frisch in Java) und hab mir die Aufgabe rausgesucht, dass ich eine Zahl eingeben soll (Die größe der Zahl bestimmt auch wie groß das Array ist) und dann soll er es danach wieder ausgeben.

Als Beispiel:

```
Geben Sie Zahlen ein:
5
13
7
1
6
Ihr Eingabe war:
5, 13, 7, 1, 6
```
So in etwa soll das ganze Aussehen...

Ich weiß nur nicht ganz, wie ich da weiter rangehen soll. Also mein Text bis dahin ist:

```
int x = IOTools.readInt("Geben Sie 5 Zahlen ein ein: "  );
        int[] meinArray = new int[5]; //Er soll die Zahlen in ein Array speichern
        meinArray[x] //ich hab vielleicht an sowas gedacht?
        for(int i=0; i<meinArray.length; i++ )
        {     
         
        System.out.println("Ihre Eingabe war: " + meinArray ); }
     
        }
```
Mein Problem dabei ist, dass ich nicht weiß, wie ich ihm sagen kann, dass man mehrere Zahlen gleichzeitig eingeben kann und er die dann in einem Array speichert und dann später wieder ausgibt.


----------



## Robat (8. Nov 2017)

KuchenBoss hat gesagt.:


> Mein Problem dabei ist, dass ich nicht weiß, wie ich ihm sagen kann, dass man mehrere Zahlen gleichzeitig eingeben kann


Gar nicht. (zmd. nicht ohne weitere, nicht triviale, Funktionen zu verwenden).

Du kannst den Nutzer doch auch einfach 5 mal eine Zahl eingeben lassen und die eingegebenen Werte in das Array an die passende Stelle speichern. ( Tipp: Schleife).


----------



## KuchenBoss (8. Nov 2017)

Ja aber wie mache ich das? Also ich könnte es mir nur sehr umständlich vorstellen, wo ich 5mal ein readInt benutze und den Nutzer halt 5mal nach einer Eingabe frage und die Arrays dann manuell mit einer Variablen speichern kann...

So nach der Art

int a = IOTools.readInt("Zahl eingeben: ");
int b = IOTools.readInt("Eine weitere Zahl eingeben: ");
int c = IOTools.readInt("Eine weitere Zahl eingeben: ");
int d = IOTools.readInt("Eine weitere Zahl eingeben: ");
int e = IOTools.readInt("Eine weitere Zahl eingeben: ");

myArray[0] = a;
myArray[1] = b;
myArray[2] = c;
myArray[3] = d;
myArray[4] = e;

Aber das wäre ja sicher mehr als konterproduktiv, oder? 

Ich überlege ganze Zeit, wie ich das als Schleife verpacken könnte...



Ginge da eine for-schleife?

for (int i=0; i=<meinArray.length; i++ ) {

Ab hier hängt es jetzt wieder... Ich weiß nicht wie ich mir das vorstellen kann, wie ich zum Beispiel die zweite Zahl einbinden kann. Die hat doch gar keine Variable oder sonst was, womit ich das mit der Schleife verbinden könnte? Wenn du mich verstehst und weißt, welches Dilemma mein Gehirn hat ^^

Die erste Zahl kann ich mir vorstellen, weil ich die ja vorher mit int x deklariert habe aber woher weiß ich denn wie ich die darauffolgenden verknüpfen kann? ^^


----------



## Robat (8. Nov 2017)

```
for (int i=0; i<meinArray.length; i++ ) {

}
```
Sieht doch schon mal gut aus.

Du willst 5 Zahlen einlesen.. als Array-Indizes gesprochen: 0..4
Du weißt auch, dass man einzelne Elemente in einem Array mit den []-Klammern anspricht.. also `array[0] = 5`.
Du weißt auch wie man eine Zahl einliest.

Dann musst du das doch jetzt nur noch zusammen setzen.

```
// array anlegen

for(int i = 0;  i < array.length; i++) {

      // zahl einlesen
      // array an der Stelle i mit der Zahl überschreiben

}
```


----------



## KuchenBoss (8. Nov 2017)

Ja, dass ist mein Problem bei Java leider. Ich kenne alle Begriffe etc aber mir mangelt es beim Vorstellungsvermögen, wie ich das alles zusammensetzen soll.

for(int i = 0;  i < array.length; i++) {

int x = IOTools.readInt("Zahl eingeben: "); // Dies wäre für Zahl eingeben
int[ i ]myArray_ = x; 
_
So in etwa?


----------



## Javinner (8. Nov 2017)

> So in etwa?


Nein..
myArray[schleifenzähler] = Texteingabe;


----------



## KuchenBoss (8. Nov 2017)

Javinner hat gesagt.:


> Nein..
> myArray[schleifenzähler] = Texteingabe;



Hach, dass ist nicht leicht. 

myArray[ i ]_ = x;

So wäre es dann aber richtig!  Habe es auch gerade in Eclipse eingegeben und endlich dazu mal keine Fehlermeldung bekommen. Bis hierhin, danke. Das ergibt Sinn.

Aber wenn ich es teste, bekommt ich als Ausgabe: "Ihre Eingabe war: [I@5c647e05". 

Wo habe ich denn da was falsch? :O _


----------



## Robat (8. Nov 2017)

Du musst das array auch mit einer schleife ausgeben.. Element für Element.


----------



## KuchenBoss (8. Nov 2017)

Ahhh, jetzt hab ich es. Danke für deine Hilfe. Du hast mir die nötigen Denkanstöße gegeben, die ich gebraucht habe.  

Ich wünsche dir noch einen schönen Tag und vielen Dank noch mal.


----------



## Javinner (8. Nov 2017)

> _So wäre es dann aber richtig!_


Und ausbaufähig  Mach jedoch Schritt für Schritt

Paar Anmerkungen:
Bitte den Code gleich zu Beginn posten und in Code-Tabs setzen [code=Java]Dein Code[/code]. So kommt man viel schneller ans Ziel. Ebenso eine kurze und klare Problembeschreibung, möglichst samt Aufgabenstellung. Wenn du mehr als nur ein Code postest, mehrere Klassen als Beispiel, wäre der Übersichtlichkeit wegen viel gedient, wenn man die Spoiler-Tabs benutzt(und in diesen wiederum die Code-Tabs).


----------

