Scanner nutzen und Index auslesen

Diskutiere Scanner nutzen und Index auslesen im Java Basics - Anfänger-Themen Bereich.
G

Gansa

Hallo, ich möchte ein kleines Programm schreiben, wo ich eine Feldlänge von 6 habe und dann mit einer while schleife über einen Scanner werte eingebe.
So jetzt würde ich gerne mit einer if else Anweisung unterscheiden, ob die eingegebene Zahl innerhalb oder außerhalb des Bereichs von 1 bis 6 liegt. Dabei möchte ich zwischen den zahlen 1 bis 6 auf den richtigen Zähler mit dem Indexoperator zugreifen. Ich habe hier das Problem das ich irgendwie es nicht schaffe auf den Index meiner eingeben werte zuzugreifen, ich bekomme eine Fehleranzeige wenn ich versuche number[EINGABE], und stehe irgendwie total auf dem schlauch, ich kopiere mal mein code rein. Ich freue mich auf Fehlerhinweise und Verbesserungsvorschläge.

Java:
        /* Feldlänge definiert */

        int [] feld = new int [6];

        //Zahlen einlesen
        System.out.println("Ganze Zahlen zwischen 1 und 6 eingeben");

        while (EINGABE.hasNext()) {
            
            //bis hier in klappt alles, unten bekomme ich einen fehler
            //anweisung zum prüfen und zählen der Eingabe
            //if-else-Anweisung
             // für die Unterscheidung,
              // ob die eingegebene Zahl innerhalb oder außerhalb des
               //Bereichs von 1 bis 6 liegt.  Bei Zahlen
               //zwischen 1 und 6 mit dem Index-Operator auf den richtigen Zähler zugreifen
          
            int number[EINGABE] = EINGABE.nextInt();

            if(number[EINGABE] <= feld){


            }

    

        }
 
Kirby_Sike

Kirby_Sike

Also erstmal, du kannst den Scanner und int sind nicht das selbe :) Ein Scanner ist ein Objekt(referenz datentyp) und ein int ist ein primitiver Datentyp :) Du kannst mit Scannervariable.nextInt() zahlen einlesen, aber du musst diese in eine variable speichern ;)

Dein Einlesen könnte z.B. so aussehen:


Java:
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
 
G

Gansa

Also erstmal, du kannst den Scanner und int sind nicht das selbe :) Ein Scanner ist ein Objekt(referenz datentyp) und ein int ist ein primitiver Datentyp :) Du kannst mit Scannervariable.nextInt() zahlen einlesen, aber du musst diese in eine variable speichern ;)

Dein Einlesen könnte z.B. so aussehen:


Java:
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
ah ja stimm irgendwie hat es mir diese Zeile nicht mit rein kopier

Code:
  int number = EINGABE.nextInt();
Das habe ich in einer variable gespeichert und versucht über number auf den Index zu Gelagen. Ging leider auch nicht. Und die Methode mit generatemoney verstehe ic
 
Kirby_Sike

Kirby_Sike

Was genau hast ging nicht? Bekommst du eine Fehlermeldung?

Die Methode generateMoney() ist meine Signatur ;)
 
R

realodds

int number[EINGABE] = EINGABE.nextInt(); if(number[EINGABE] <= feld){
du brauchst nicht [EINGABE] zu machen. Ein
Java:
int number = EINGABE.nextInt();
if (number <= 0){
}
reicht mehr als aus.
Generell kannst du eine int[] nicht so erzeugen, wie du es gemacht hast.
Java:
int numbers[] = new int[size];
number[0] = 0;
number[1] = 45;
 
G

Gansa

du brauchst nicht [EINGABE] zu machen. Ein
Java:
int number = EINGABE.nextInt();
if (number <= 0){
}
reicht mehr als aus.
Generell kannst du eine int[] nicht so erzeugen, wie du es gemacht hast.
Java:
int numbers[] = new int[size];
number[0] = 0;
number[1] = 45;
Ja eigentlich schon.. aber ich möchte
innerhalb der while-Schleife eine if-else-Anweisung für die Unterscheidung, ob die eingegebene Zahl innerhalb oder außerhalb des Bereichs von 1 bis 6 liegt. Deshalb habe ich ein array nur mit einer Feldlänge 6 erstellt. Und bei Zahlen zwischen 1 und 6 möchte ich mit dem Index-Operator auf den richtigen Zähler zugreifen.
 
R

realodds

Also das was ich verstanden habe, was du machen willst, sollte volgendermaßen funktionieren:
Java:
int[] feld = new int[6];
// eidt: scanner war in der schleife
Scanner scan = new Scanner(System.in);
while (true){
System.out.println("Ganze Zahl zwischen 1 und 6 eingeben");
int zahl = scan.nextInt();
if (zahl <= feld.length && zahl >= 1){
System.out.println("Die eingebene Zahl liegt zwischen 1 und 6. Sie lautet: " + zahl);
} else{
break;
// bricht aus der while schleife raus
}
}
scan.close();
 
G

Gansa

Also das was ich verstanden habe, was du machen willst, sollte volgendermaßen funktionieren:
Java:
int[] feld = new int[6];
// eidt: scanner war in der schleife
Scanner scan = new Scanner(System.in);
while (true){
System.out.println("Ganze Zahl zwischen 1 und 6 eingeben");
int zahl = scan.nextInt();
if (zahl <= feld.length && zahl >= 1){
System.out.println("Die eingebene Zahl liegt zwischen 1 und 6. Sie lautet: " + zahl);
} else{
break;
// bricht aus der while schleife raus
}
}
scan.close();
Okay danke, dieses hier
Code:
if (zahl <= feld.length && zahl >= 1){
hatte ich mal ganz am Anfang versucht aber funktionierte nicht. Jetzt geht es.. Dankeschön!
 
Thema: 

Scanner nutzen und Index auslesen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben