Programm wird nicht richtig ausgeführt

mine1marlon

Neues Mitglied
Hallo,

ich weiß ehrlich gesagt nicht mal wie ich meine Frage formulieren soll, da ich wirklich null Ahnung habe wo das Problem liegt...
Darum konnte ich auch noch nicht googlen!


Ich wollte mir ein kleines Passwort Schloss programmieren, bei dem man ein Passwort mit Zahlen eingibt und es ist dann entweder richtig oder falsch, und man hat 3 Versuche und danach soll das Programm beendet werden. Da ich aber noch kompletter Anfänger bin habe ich von dem ganzen Zeugs nur etwas Ahnung. Ich habe natürlich auch noch nichts gemacht im Bereich Fehler abfangen(catch etc).
Mein Code:
Java:
import java.util.Scanner;

public class pwBackup {
public static void main(String args[]){
	
	Scanner input = new Scanner(System.in);
	int versuche = 3;
	double passwort = 1234;
	long eingabe;
	boolean loggedin=false;
	System.out.println("Please enter your password.");
	eingabe = input.nextLong();
	
	while(loggedin==false&&versuche>0){
	versuche--;
	if (eingabe == passwort) 
	 { 
	 System.out.println ("Correct Password! You are now logged in!");
	 loggedin=true;
	 
	 
	 } 
	 else if(eingabe != passwort)
	 { 
		 System.out.println ("Sorry, wrong password! You have " +versuche+ " effort(s) left. "
		 		+ "Please enter your Password again"); 
			eingabe = input.nextLong();
	
	 }
	if(loggedin==true){
		System.out.println("You are logged in!");
		System.exit(0);
	} 
	
	 if(loggedin==false&&0<=versuche);
		System.out.println("YOUR ACCOUNT IS LOCKED. YOU ENTERED THE PASSWORD WRONG 3 TIMES!");
		loggedin=(false);
		System.exit(0);
}
}
}

(Ja ich habe es etwas, ja umständlich trifft es gut, programmiert... 😀)

Wenn man es kompiliert kommt halt "Enter your Password" was ich ja auch will, und wenn man dann das richtige Passwort eingibt klappt es auch, nur da ist schon der erste Fehler, eigentlich sollte noch das "You are logged in" am Ende stehen, welches auch unten in meinem Code steht, aber nicht in der Konsole. Nur eigentlich hat man ja 3 Versuche, wenn man es aber einmal falsch eingibt, kommt bei der nächsten Eingabe egal ob das Passwort richtig oder falsch ist "Your Acc is locked", was ja eigtl auch gut ist, nur sollte das halt erst kommen wenn man das Passwort auch wirklich 3 mal Falsch eingegeben hat, und nicht schon vorher.
IDE: Eclipse
OS: Win7

Danke schonmal im Vorraus!
Grüße
 
Zuletzt bearbeitet:
Geh den Code doch einfach mal Schritt für Schritt durch und notiere dir in jeder Zeile was in den Variablen steht, dann solltest du sehr schnell den Fehler finden.

Gruß

Claus
 
Also diese Zeile solltest du noch mal ganz genau ansehen, da sind gleich 2 Fehler drin...

if(loggedin==false&&0<=versuche);
 
Wie Thallius schon gesagt hat, gehe deinen Code Schritt für Schritt durch und notiere dir Änderungen der Werte usw.
Damit sollte eigentlich klar werden was dein Code macht und warum.
Stichwort: SCHREIBTISCHTEST

Java:
	double passwort = 1234;
	long eingabe;
....
	if (eingabe == passwort)

Ein Password wird wohl eine Ganze Zahl sein und keine Dezimalzahl.
Außerdem vergleichst du hier 2 unterschiedliche Typen miteinander (es kann zwar funktionieren, aber es ist logisch falsch -> Äpfel und Birnen kannst du auch nicht vergleichen 😛)

Java:
	 if(loggedin==false&&0<=versuche);

Überlege dir dir Bedingung nochmals, der Account wird gesperrt wenn alle Versuche verbraucht sind 😉

Deine Schleife sollte nur dein Passwort vergleichen, die Ausgabe ob man eigeloggt ist bzw. der Account gesperrt ist sollte nach der Schleife passieren
Da du diese Ausgaben einmalig haben willst und nicht öfters, daher haben diese bedingungen in der Schleife nichts zu suchen.
 

Zurück
Oben