mehrere if Clause in Java

Airwave

Grünschnabel
Und zwar bin cih gerade am Tag 2 von einem Buch und wollte dann selber mal wwas bauen..


Code:
	void fuckBitch() {
		if (fuck == "want") {
			System.out.println("jeah, jeah, yesssssssssssss, ... It was so nice.") ;
			fuck = "done";
		} 
		if (fuck == "done") {
			System.out.println("I justed Fucked you...") ;
			fuck = "angry";
		} 
		if (fuck == "angry") {
			System.out.println("Fuck you, go home boy I`m no Sexmachine") ;
			
		} 
			
	}


So aber beim ersten mla gehts gut und danach kommt "Fuck you, go home boy I`m no Sexmachine" 2x obwohl ja erstmal dazwischen das 2te kommen ssollte. wer findet den fehler?

und noch was und zwar bin ich ja erst bei Tag 2 und da muss cih da unten noch reinschreiben was ich will und zwar....
Code:
public static void main (String arguments[]) {
     Bitch j = new Bitch();
     j.color = "red";
     j.*** = "female";
     j.hungry = true;
     j.fuck = "want";

     j.showAttributes();
     System.out.println("-----");
     j.fuckBitch();
     System.out.println("-----");
     j.showAttributes();
     System.out.println("-----");
     j.fuckBitch();
     System.out.println("-----");
     j.showAttributes();
     System.out.println("-----");
     j.fuckBitch();
     System.out.println("-----");
     j.showAttributes();


Ich hätte es aber viel lieber so das ich das ganze einmal mit "java Bitch" starte und das dann im dem Programm drin ist also cih dann was eingeben kann wie j.fuckBitch(); oder andere kürzel und er mir dann das immer auusgibt wenn cih das schreib .. geht sowas?

thx 4 help
 
Servus!

In Java Vergleicht man Strings mit der Methode equals(String str) auf
gleichheit nicht mit "=="

Also:

String str1 = "hallo";
String str2 = "hallo";

if(str1.equals(str2)){
System.out.println("str1 equals str2");
}

...dein anderes Problem solltest du ein wenig "verständlicher" Ausformulieren und verwende bitte "andere" Beispiele!

Gruss Tom
 
Zuletzt bearbeitet:
hmm das was du da geschirbene hast versteh ich leider nicht. weil im buch wars bei mir so drin mit den if clause aber nur eine.

Kannste du mal das was cih oben geschrieben hab so umschreiben das es geht?

Also das andere Prob.

Ich starte ein Programm ja wenn ich eintippe zB "java Test"

So dann gibt er mir ja Sachen von alleine raus. Aber wenn cih sowas mache wie zB ein Tier füttern,schalfenlegen etc. Ich will das nicht alles vorher in die Test.java reinschreiben sondern ich will das wenn ich "Java Test" eingebe es wie ein programm ist und ich dann dadrin sowas eingeben kann wie "füttern" , "schalfenlegen" etc

Airwave
 
Original geschrieben von Airwave

Also das andere Prob.
Ich starte ein Programm ja wenn ich eintippe zB "java Test"
So dann gibt er mir ja Sachen von alleine raus. Aber wenn cih sowas mache wie zB ein Tier füttern,schalfenlegen etc. Ich will das nicht alles vorher in die Test.java reinschreiben sondern ich will das wenn ich "Java Test" eingebe es wie ein programm ist und ich dann dadrin sowas eingeben kann wie "füttern" , "schalfenlegen" etc

Hmm du meinst also von der Kommandozeile aus einlesen. Am besten mit einem BufferedReader
Code:
  import java.io.*;
    ....
    ....
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

   String eingabe;
    try{ 
    eingabe = br.readLine(); //lies einen String per Tastatur ein
    }
    catch (Exception e) {System.err.println (e);}

   if (eingabe.equals("schlafen")) {
        System.out.println ("Tier geht schlafen");
   }

equals ist eine boolean-Methode die vergleicht ob zwei Objekte gleich sind, (in diesem Fall sind es 2 String-Objekte). Also im uebertragenen Sinne entspricht sie genau dem '==' Operator, welcher bei numerischen Werten verwendet wird.
 
1. Empfehlung geht nicht so unmotiviert an die sache. Jeder von uns hatte mal derartige probleme, aber wer wird gleich ausflippen!

2. Ein String also eine Zeichenkette ist kein reiner datentyp genau genommen isses ein objet im java.util.* packet aber weils so oft gebraucht wird kann man es auch ohne die import klausel verwenden. Strins werdne immer mit der equals klausel vergleichen

Beispiel

String test = "hallo";
if(test.equals("hallo"))
System.out.println("RICHTIG");
else
System.out.println("FALSCH");


Es geht prinzipiell wie du es gemacht hast auch aber bedenke die unsichtbaren zeichen am ende von strings die werden auch mitverglichen!!!!

du hast hier ne aneinandergereihte if bedingung d.H. wenn du ne variable in ner if bedinung setzt und sie gleich darauf prüfst so kann es sein dass mehr als nur eine bedinung richtig ist

Beispiel:

String test = "hallo";

if(test.equals("hallo"))
{
test = "tschüs";
}
if(test.equals("tschüs"))
System.out.println("ZWEI WAHRE AUSSAGEN");
 
Zurück