While schleife mit 2 Bedingungen geht nicht!

Gameneuling

Mitglied
Moin erstmal grade extra für die Frage registriert^^
Folgendes Problem meine While schleife mit 2 Bedingugen geht nicht.
Folgender Code funktioniert nicht <.<:

Java:
int Richtig;
while((Richtig > 20) || (Falsch < 12))
{
Richtig = Richtig + 1;
System.out.println(Richtig);
}

Die Konsole rechnet einfach Richtig ins unendliche weiter +1 obwohl die schleife doch eigtl. aufhören sollte oder?
 
ist das dein ganzer code?

Meiner Meinung nach hast du "Falsch" nicht richtig deklariert.

Die Schleife hört erst auf wenn Richtig < 20 ist oder Falsch > 12 ist.
 
hab mich da vertahn, beide sind so deklariert:

Java:
int Richtig = 0;
int Falsch = 0;

Ich versteh einfach nicht warum es nicht geht <.<
 
Zuletzt bearbeitet:
damit die schleife funktioniert muss:

Java:
int Richtig > 20

 //oder 

int Falsch < 12

bei dir steht aber:

Java:
int Richtig = 0;
int Falsch = 0;

da Falsch ja immer 0 bleibt ändert sich nur Richtig immer um einen Wert.
Deine Schleife ist also immer wahr da der Wert von Falsch nie geändert wird.
 
Zuletzt bearbeitet:
So wie du die Schleife deklariert hast, ist es eine Endlosschleife, da dein Falsch = 0 und die Abbruchbedingung für Falsch nie erfüllt wird. In den Code müsste noch:

Java:
Falsch = Falsch+1;

Deine while-Schleife bricht nämlich nicht ab wenn Richtig erfüllt ist, sondern läuft weiter, da auch immer gefragt wird ob Falsch < 12 ist. Im Endeffekt so: (Bedingung_eins = true || Bedingung_zwei = false) da die zweite Bedingung false ist, wird nicht abgebrochen.
 
Zuletzt bearbeitet:
fuuuc stimmt 😀
Wie kann ichs denn so machen, dass er aus der Schleife rausgeht wenn eine Bedingung nicht mehr stimmt?
 
Zuletzt bearbeitet:
Mach es so:

Java:
while( Richtig < 20 && Falsch < 12) {
	Richtig = Richtig + 1;
	System.out.println(Richtig);
	}

Hoffe das hilft. 🙂
 
Moin erstmal grade extra für die Frage registriert^^
Folgendes Problem meine While schleife mit 2 Bedingugen geht nicht.
Folgender Code funktioniert nicht <.<:

Java:
int Richtig;
while((Richtig > 20) || (Falsch < 12))
{
Richtig = Richtig + 1;
System.out.println(Richtig);
}

Die Konsole rechnet einfach Richtig ins unendliche weiter +1 obwohl die schleife doch eigtl. aufhören sollte oder?

Bei mir läuft dein Code genau richtig: IDE Netbeans 7.4, allerdings mit JDK 8

 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    10 KB · Aufrufe: 76
Zuletzt bearbeitet:
dann würde er doch nur aus der schleife gehen wenn beide Bedingungen richtig sind oder?
(was bei dem programm leider nie der Fall ist)


Nochmal kurz zu meine Ansatz:

Java:
while( Richtig < 20 && Falsch < 12) {
    Richtig = Richtig + 1;
    System.out.println(Richtig);
    }

Bei dieser Schleife stehen am Anfang beide Bedingungen auf false. Bei dieser Deklaration bricht die Schleife ab wenn eine Bedingung true wird, da beides erfüllt seien muss (durch das &&) . Bei deiner Deklaration vom Anfang muss beides erfüllt sein, sonst bricht die Schleife nicht ab.
 
Zuletzt bearbeitet:

Zurück
Oben