You are not logged in.
Cyrus
Senior Member




This post has been edited 1 times, last edit by "Cyrus" (Nov 25th 2009, 10:03am)
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
// Beispiel einer while-Schleife, mit Passwortabfrage
public class Passwort {
/**
* Liest eine Text von der Eingabe und gibt ihn zurück
* @return die von der Eingabe eingelesene Zahl
*/
public static String EingabeString() {
java.util.Scanner scanner = new java.util.Scanner(System.in);
return scanner.next();
}
public static void main (String[] args ) {
// Deklaration und Initialisierung der Variablen
String eingabe = "";
String passwort = "Jens";
boolean richtigesPasswort = true;
// Do-While-Schleife für die Übereinstimmung der Passwortes.
do {
if (richtigesPasswort == false) {
System.out.println ("Falsches Passwort!");
}
System.out.println ("Geben Sie bitte Ihr Passwort ein");
// Einlesen der Eingabe mit der Methode EingabeString.
eingabe = EingabeString();
// Überprüfung Übereinstimmung
richtigesPasswort = eingabe.equals(passwort);
}
while (richtigesPasswort == false);
System.out.println( "Herzlichen Glueckwunsch, das Passwort ist richtig!");
System.out.println( "Schleife beendet" );
}
}
|
Der Vergleichsoperator `==` kann in Java (mangels Operator-Overloading?) nur für native Typen (int, float, boolean etc.) verwendet werden. Für Objekte, dessen Klassen on `Object` erben, muss mittels der Methode `equals()` verglichen werden. Das gilt für Integer, Float, Boolean und auch String.
== kann man auch mit Objekten benutzen. Da ist es aber kein "equals" sondern ein "same".
Und das mit dem Operator-Overloading, wie man es beispielsweise von C(++) kennt, lassen wir mal. Das hat insgesammt wohl mehr geschadet als genutzt.
-