Du bist nicht angemeldet.
Cyrus
Senior Member
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Cyrus« (25. November 2009, 10:03)
![]() |
Quellcode |
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.
-