Scanner problem mit Passwort Login

cpt.Tomato

Mitglied
Hallo zusammen,

ich habe gestern angefangen Java zu Programmieren.
Ich mache einen Udemy Kurs und hatte die Tolle Idee einen Passwort Login zu Programmieren um einfach mit Eclipse rumzuspielen und weiter zu lernen.

Soweit funktioniert das auch, doch ich bekomme die Info, dass der Scanner nicht geschlossen wird. Dass verstehe ich auch und habe gelesen, dass dieser auch nicht zwangsläufig geschlossen werden muss.

Da ich gerne besser werden würde, wäre meine frage, wo ich den Scanner closen soll, da sobald ich diesen direkt dahinter beende, kommt die Fehlermeldung:

Code:
Exception in thread "main"
java.util.NoSuchElementException: No line found
at java.base/java.util.Scanner.nextLine(Scanner.java:1651)
at main/Karton.passwort3x.main(passwort3x.java:20)

Mein Code sieht folgendermaßen aus:

Java:
package Karton;



import java.util.Scanner;



public class passwort3x{



public static void main(String[] args) {


String Passwort = "tr";


int a = 0;

int b = 0;


System.out.println("Bitte geben Sie Ihr Passwort ein um sich anzumelden.");



while (a<1){


Scanner sc = new Scanner(System.in);

String Eingabe = sc.nextLine();

sc.close();



if (Eingabe.contentEquals(Passwort)) {

System.out.println("Korrekt!");

a = a+1;

System.out.println(a);



} else if (Eingabe!=Passwort) {

System.out.println("leider nicht korrekt");

b = b+1;


} if (b==3) {

System.out.println("Sie haben das Passwort zu oft falsch eingeben!");

System.exit(0);

}

}}}

Wenn ich sc.close raus nehme, funktioniert es wie gesagt einwandfrei.

Ist mein erster Eintrag hier, sollte ich was falsch gemacht haben, sagt mir bitte bescheid.

Vielen Dank
Der Captain
 
Zuletzt bearbeitet von einem Moderator:
Prinzipiell, wenn du den Scanner schließen willst, dann ganz am Ende des Programms. Wie du aber schon richtig gesagt hast, muss/sollte der Scanner nicht geschlossen werden, weil der darunter liegende Inputstrsam auch geschlossen wird.
Die Warnung ist eclipse-spezifisch - ich würde mich also nicht daran aufhalten 🙂
 
Code bitte immer in Code-Tags posten. In diesem Fall sieht das dann so aus:
Code:
Exception in thread "main"
java.util.NoSuchElementException: No line found
at java.base/java.util.Scanner.nextLine(Scanner.java:1651)
at main/Karton.passwort3x.main(passwort3x.java:20)
Java:
package Karton;

import java.util.Scanner;

public class passwort3x{

    public static void main(String[] args) {
        String Passwort = "tr";
        int a = 0;
        int b = 0;

        System.out.println("Bitte geben Sie Ihr Passwort ein um sich anzumelden.");

        while (a<1){
            Scanner sc = new Scanner(System.in);
            String Eingabe = sc.nextLine();
            sc.close();

            if (Eingabe.contentEquals(Passwort)) {
                System.out.println("Korrekt!");
                a = a+1;
                System.out.println(a);
            } else if (Eingabe!=Passwort) {
                System.out.println("leider nicht korrekt");
                b = b+1;
            } if (b==3) {
                System.out.println("Sie haben das Passwort zu oft falsch eingeben!");
                System.exit(0);
            }
        }
    }
}
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben