Erste Schritte (scanner).nextLine() gibt Fehler aus

Mosch

Neues Mitglied
Hallo,

ich habe mich mal an Java probiert. Bei der Eingabe vom String ist ein Fehler aufgetreten.

Hier meine Main-Klasse:

Java:
public class Controller {
    public static void main(String[] args){
        Eingabe Eingabe = new Eingabe();
        String[] E = Eingabe.Elemente();
        Eingabe.Elemente();
        System.out.println(E[1] +" "+ E[2]);
     }
}

Hier die andere Klasse:

Java:
import java.util.Scanner;
public class Eingabe {
    private String E[]= new String[100];
    public String[] Elemente() {
        boolean YN = true;
        int Z1 = 1;
        int Z2;
        String MonoDuo;
        Scanner scanner = new Scanner(System.in);
        for (Z2 = 1; Z2 < 3; Z2++) {
            do {
                System.out.println("Ist es eine Mono oder Duo Rüstung?");
                MonoDuo = scanner.nextLine();
                if (MonoDuo.equals ("Mono") || MonoDuo.equals ("mono") || MonoDuo.equals("MONO")) {
                System.out.println(Z2 + ". Rüstung / 1. Element: (Earth - Air - Water - Fire - Spirit)");
                    E[Z1] = scanner.nextLine();
                    Z1++;
                }
                else if (MonoDuo.equals("Duo") || MonoDuo.equals("duo") || MonoDuo.equals("DUO")) {
                    System.out.println(Z2 + ". Rüstung / 1. Element: (Earth - Air - Water - Fire - Spirit");
                    E[Z1] = scanner.nextLine();
                    System.out.println(Z2 + ". Rüstung / 2. Element: (Earth - Air - Water - Fire - Spirit)");
                    E[Z1] = scanner.nextLine();
                }
                else {
                    System.out.println("Fehler - Gib Mono oder Duo ein!");
                    YN = false;
                }
            }  
            while (YN = false);
        }
        scanner.close();
        return E;
    }
}

Und hier noch der Fehlercode:

Code:
Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Scanner.java:1540)
    at Eingabe.Elemente(Eingabe.java:16)
    at Controller.main(Controller.java:6)

Außerdem wird mir noch iin der Eingabe-Klasse angezeigt, dass YN nicht benutzt wird, obwohl ich es benutzte...

Habt ihr noch weitere Verbesserungsvorschäge.

Schonmal danke im voraus
 

fhoffmann

Top Contributor
Java:
scanner.close()
Dies schließt auch System.in.
Beim nächsten
Java:
Scanner scanner = new Scanner(System.in);
kann System.in nicht mehr gelesen werden.

Und dies ist eine Zuweisung und kein Vergleich:
Java:
while (YN = false);
 
Zuletzt bearbeitet:

Mosch

Neues Mitglied
@fhoffmann

Danke nachdem ich
Java:
scanner.close();
entfernt habe ging es.

@VfL_Freak
Ich hab mich schon gewundert warum die Schleife 2mal ausgeführt wurde.
Habe jetzt eins von denen entfernt. Danke
 

Neue Themen


Oben