Java Übung & Lösung: Passworteingabe und Passwortvergleich
In dieser Java Übung möchte ich, dass du ein Programm erstellst, welches ein eingegebenes Passwort kontrolliert.
- Lege dazu eine Klasse „PassWortAbfrage“ an.
- In dieser Klasse befindet sich die main-Methode für den Programmmstart.
Beim Start des Programmes wirst du aufgefordert ein Passwort mittels Bildschirmeingabe einzugeben. - Dann wird eine weitere statische Methode „pruefePassWort()“ aufgerufen.
Und diese Methode fordert dich dazu auf, ein Passwort einzugeben. - Nachdem du das Passwort eingeben hast, prüft die Methode „pruefePassWort()“, ob dieses mit dem ursprünglichen Passwort überein stimmt oder nicht.
- Falls das Passwort überein stimmt, erhältst du die Bildschirmausgabe „Zugang gewährt“.
Falls aber dein Passwort falsch ist, erhältst du die Ausgabe „Passwort falsch. Neuer Versuch“.
Und du erhältst wieder die Möglichkeit ein Passwort auf der Konsole einzugeben. - Nach drei falschen Versuchen erscheint die Bildschirmausgabe „Passwort falsch. Zugang verweigert. Wenden Sie sich an den System-Administrator“.
Nach dem dritten Versuch ist kein neuer Passwortversuch mehr möglich.
Also dann viel Spaß beim Lösen dieser Java Übung.
Hier ist die Lösung zu dieser Java Übung.
import java.util.Scanner;
public class PassWortAbfrage {
static void pruefePassWort(String passWortVergabe){
Scanner eingabe = new Scanner(System.in);//Scanner für Eingabe der zu-überprüfenden Passwörter
System.out.println("Gib Passwort ein!!");//Aufforderung zur Passworteingabe
String passwortPruefung = eingabe.next() ;//Speichern des eingebenen Passwortes
int i =1;//Zählvariable für Versuche
while(passWortVergabe.equals(passwortPruefung)==false && i<3){
System.out.println("Passwort falsch. Neuer Versuch");
passwortPruefung = eingabe.next();
i++;
}
if (passWortVergabe.equals(passwortPruefung)==true){
System.out.println("Zugang gewährt");
}
else {
System.out.println("Passwort falsch. Zugang verweigert. Wenden Sie sich an den System-Administrator");
}
}
public static void main(String[] args) {
Scanner passwortEingabe = new Scanner(System.in);//Scanner zur Nutzereingabe
System.out.println("Vergebe ein Passwort");//Auffordderung zur Passwortvergabe
String passWortVergabe = passwortEingabe.next();//Speichern des eingebenen Passwortes
pruefePassWort(passWortVergabe);//Methodenaufruf und Übergabe des Passwortes
}
}
Für die Lösung dieser Aufgabe habe ich die while-Schleife gewählt, da die Anzahl der Schleifendurchläufe ungewiss sein wird.
Du weißt zwar, dass es höchstens drei Durchläufe geben wird.
Dennoch ist nicht 100%-ig klar, wie viele Durchläufe es genau sein werden.
Die Schleifenbedingung besagt:
Solange das eingegebene Passwort nicht mit dem gespeicherten Passwort übereinstimmt und die Zählvariable unter drei ist – geh in den Schleifenrumpf.
Im Schleifenrumpf wird dann ganz normal die Zählvariable i um eins erhöht und es wird zur Neueingabe aufgefordert.
Außerhalb der Schleife wird dann nochmal geprüft, ob das Passwort übereinstimmt.
Und in Abhängigkeit der Richtigkeit des Passwortes, werden zwei unterschiedliche Bildschirmausgaben produziert.