Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
String antwort;
antwort = sc.next();
System.out.println (antwort);
//antwort mit gut
//gut != gut ?!?
if ( antwort == "gut") //egal was eingegeben wird, if liefert immer false zurück.
{
System.out.println("Freut mich fuer dich.");
}
//antwort mit schlecht (nicht jedes if braucht ein else)
if (antwort == "schlecht")// else erspart nur Tipparbeit.
{
System.out.println(" Tut mir leid fuer dich. :) ");
}
Also funktionieren tuts schon mal, aber irgendwie nicht wirklich so wie ich will.
Kurz noch zur Funktionsweise.
Der Benutzer wird gefragt, wie es ihm denn so gehe. Wenn der Benuter gut eingibt soll ausgegeben werden "Freut mich für dich".
Wenn der Benutzer "schlecht" eingibt. "Tut mir leid für dich".
Mein Problem:
Auch wenn der Benutzer "gut" eingibt liefert die if-Verzweigung trotzdem false zurück.
Ich komm einfach nicht drauf was da los ist.
Liebe Grüße
Lukas
Danke für die schnelle und hilfreiche Antwort. Endlich funkts. Wiese kann man aber zwei Strings nicht einfach in if vergleichen ohne eine speziellle Methode?
Oder ist es einfach so?
Weil ein String ein Objekt ist. Und mit == werden nunmal die Referenzen verglichen. Mit einer implementierten Methode [c]equals()[/c] werden in Java üblicherweise Objekte verglichen.
Wäre mir egal gewesen, wenn die Kommentare nicht da gewesen wären
Java:
if ( "gut".equalsIgnoreCase(antwort)) //egal was eingegeben wird, if liefert immer false zurück.
{
...
}
//antwort mit schlecht (nicht jedes if braucht ein else)
else if( "schlecht".equalsIgnoreCase(antwort))// else erspart nur Tipparbeit.
{
...
}
Else erspart hier nicht nur Tipparbeit, sondern sparst du dir einen unnützen Vergleich. Wenn Antwort gleich "gut" ist, würde in deiner Variante trotzdem geprüft werden, ob Antwort auch gleich "schlecht" ist. :bae:
Ich hab das ganze für einen Freund gemacht, der gerade dieses Wochenende begonnen hat Java zu lernen. (Okay ich bin auch nicht gerade der erfahrenste Programmierer)
Der hätte nämlich gedacht, dass jedes if auch ein else benötigt. Also habe ich ihm auch gleich, zumindest versucht, einen Grund zu nennen, wieso er kein else braucht.
So und zu guter Letzt noch ein großes Lob an die Forumgemeinde. Ich finde es wirklich toll wie schnell man hier Antworten bekommt.
Scheisse, immer diese Flüchtigkeitsfehler eigentlich wollte ich ein [c]T search(List<T>, T)[/c] machen, bis ich merkte, dass solch eine Funktion ziemlich sinnlos ist :autsch: da hab ich den Return Type wohl ganz vergessen
Soo sinnlos wäre sie nicht gewesen. Man hätte dem Kunde immerhin einen Patch (für teuer Geld) zur Performenceverbesserung anbieten können, indem man nicht mehr diese&ähnliche Methoden verwendet =D.
Jou, aber das Beispiel erfüllt seinen zweck (und jz ists auch kompilierbar^^), von daher passts ja.