Vous n’êtes pas connecté.
Cyrus
Senior Member




Ce message a été modifié 1 fois. Dernière modification effectuée par "Cyrus" (25 novembre 2009, 10:03)
|
|
Code source |
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.
-