ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
274
274
EMPFEHLEN
-
06.06.10 15:35 #1Mon5tar Tutorials.de Gastzugang
Guten Tag zusammen,
hab hier ein Problem und zwar greift die while-schleife nicht so wie sie soll... nachdem die if-abfrage fertig ist, ist die variable fehler wenn man y oder Y wählt immer noch 1... und in der while schleife steht das wenn sie 1 ist die befehle durchlaufen soll...
hier der code:
könt ihr mir büdde helfen?Code java: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 45 46 47 48 49 50 51 52 53 54 55
import java.io.*; public class note { public static void main (String argv[]) throws Exception { int note,fehler; String note_abfrage, abfr2; BufferedReader input = new BufferedReader (new InputStreamReader(System.in)); System.out.println("Programmstart Note.java"); System.out.println(); fehler = 1; while (fehler == 1) { System.out.print("Welche Note haben Sie bekommen? "); note_abfrage = input.readLine(); note = Integer.parseInt(note_abfrage); switch (note) { case 1: System.out.println("Sehr gut *_*"); break; case 2: System.out.println("Gut gut =D"); break; case 3: System.out.println("Befriedigend =]"); break; case 4: System.out.println("Ausreichend =/"); break; case 5: System.out.println("Mangelhaft -.-"); break; case 6: System.out.println("Ungenügend o_O"); fehler = 0; break; default: System.out.println("Bitte geben Sie eine Zahl zwichen 1 und 6 an"); } if (fehler == 1) { System.out.print("Wollen Sie das Programm wiederholen? (Y)es or (N)o? "); abfr2 = input.readLine(); if ( abfr2 == "Y") { } else { if ( abfr2 =="y") { } else { fehler = 0; } } }//if fehler ==1 }//while System.out.println(); System.out.println("Programmende Note.java"); }//void }//public class
-
Hallo,
das liegt daran, dass du die String falsch vergleichst.
Mit == kannst du nur schauen ob es sich um das gleiche Object handelt. Wenn du den Inhalt von Strings vergleichen möchtest, musst du das mit equals machen.
Code :1 2
String s = "Hallo"; System.out.println(s.equals("Hallo"));
Gruß
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
Dein Problem liegt in den Zeilen
undCode java:1
if ( abfr2 == "Y")
Code java:1
if ( abfr2 == "y")
Der == - Operator überprüft, ob es sich auf beiden Seiten um die selben Objekte handelt, das wird aber nie der Fall sein, und daher geht das Programm immer in den zweiten else-Bereich.
Korrekt ist, wenn man nur überprüfen möchte, ob der Text gleich ist, die Funktion "equals" zu nehmen, in deinem Fall wäre es sogar eleganter die Funktion "equalsIgnoreCase" zu verwenden, dann sparst du die die zweite If-Abfrage.
Das würde dann so aussehen:
Wenn du in dem If-Teil nichts weiter tun möchtest(wie es momentan der Fall ist) kannst du den else Teil auch weglassen und die Bedingung negieren, also folgendermaßen:Code java:1 2 3 4 5
if (abfr2.equalsIgnoreCase("y")) { //tu irgendwas } else { fehler = 0; }
Code java:1 2 3
if (!abfr2.equalsIgnoreCase("y")) { fehler = 0; }
Geändert von Matt297 (06.06.10 um 19:43 Uhr)
-
06.06.10 18:36 #4Mon5tar Tutorials.de Gastzugang
Okii vielen dank =D
hat super funktioniert das equals sowie equalsIgnoreCase
ihr seid spitze =D
Ähnliche Themen
-
[Lua/C++] Anfängerproblem
Von badday im Forum C/C++Antworten: 6Letzter Beitrag: 22.02.10, 18:12 -
Anfängerproblem
Von nex_m im Forum VisualStudio & MFCAntworten: 4Letzter Beitrag: 02.01.07, 14:34 -
Anfängerproblem
Von pgd im Forum Cinema 4DAntworten: 12Letzter Beitrag: 30.01.06, 15:22 -
Java anfängerproblem
Von janosch im Forum JavaAntworten: 2Letzter Beitrag: 09.04.03, 12:29 -
Anfängerproblem?
Von khaindar im Forum 3D Studio MaxAntworten: 2Letzter Beitrag: 01.04.03, 16:43





Zitieren

Login





