If-else und while in einem Java Programm?

5 Antworten

int value1 = 3;
int value2 = 1;
bool switch = true;

//Es wird nur abgefragt
if(value1 < 10) 
{
  //Es wird abgefragt ABER in der Schleife wird value2 um 1 erhöht
  while(value2 < 10) 
  {
      if(switch == true) {
        System.Out.Println(value2);
      }

      value2++;
  }
}
Woher ich das weiß:Berufserfahrung – Software Engineer

Hä? Du fragst jetzt, wie man while und if kombiniert? Naja, man schreibts hin, wenn man's braucht. Beispiel, Du willst, dass der Benutzer eine Zahl zwischen >= 0 eingibt. Wenn die Zahl genau 1 ist, soll das ausgegeben werden, bei größeren Zahlen als 1 was anderes.

Bei 0 soll das Programm beendet werden:

int benutzerZahl = 1;
while (benutzerZahl != 0)
{
  benutzerZahl = // hole Eingabe vom Benutzer ab
  if (benutzerZahl == 1) 
    System.out.println("Sie haben 1 eingegeben!");
  else if (benutzerZahl > 1) 
    System.out.println("Sie haben was größer 1 eingegeben!");
}

Beides hat einfach gar nichts miteinander zu tun. Das eine ist eine Schleifenfunktion - tue etwas, bis ein Abbruchkriterium erfüllt ist.

Das andere triff eine Entscheidung: Gilt ein Kriterium? Nein? Dann mach was anderes.

Hallo YukiKyrielight,

du könntest einen if-else-Block nutzen, um verschiedene Eigenschaften zu überprüfen, die der Hamster haben könnte. Z.B. kann der Nutzer den Namen des Hamster eingeben und dann reagiert der Hamster auf die Eingabe, sofern der Name korrekt ist.

Den switch-Block könntest du theoretisch für den selben Sinn und Zweck wie den if-else-Block nutzen.

Die while-Schleife wäre sinnvoll, wenn du deinen Hamster z.B. laufen lassen willst. Beispielsweise soll der Hamster solange laufen bis er die 200 Meter erreicht hat und macht dann eine Pause. Das würde sich in der while-Schleife realisieren lassen.

Ich hoffe, dass dir das weitergeholfen hat.

Freundliche Grüße

Woher ich das weiß:eigene Erfahrung

Realitätsfernes aber dennoch recht naheliegendes Beispiel:

//sei Linse eine Klasse mit funktion gut: ()->boolean
//sei linsen ein Iterator<Linse>
//seien töpfchen, kröpchen List<Linse>
while(linsen.hasNext()){
  Linse nächste=linsen.next();
  if(nächste.gut())töpchen.add(nächste);
  else kröpchen.add(nächste);
}

Wieso denn "realitätsfern"?

Gut, Aschenputtel (aka Aschenbrödel, Cinderella, usw...) war keine Programmiererin, aber das kann man unter "Kleinigkeiten..." einordnen. ^^

0

Ich weiss nicht was das für ein Simulator ist aber:

while (Hamster) {
  if (Hamstercolor == Yellow) {
    Hamster.MoveUp();
  } else {
    Hamster.MoveDown();
}

Das geht in Java nicht, weil Hamster offensichtlich eine Klasse ist. Die while-Condition muss aber zu einem boolean auswertbar sein. Das ist mit einer Klasse aber nicht möglich.

Es muss hier also sowas stehen wie while (Hamster.canMove()) oder while (Hamster.isInView()).

1
@ohwehohach

Es sei denn Hamster ist boolean, dann hat man einen schlechten Stil.

In JS würde sowas wohl auch gehen.

0
@ohwehohach

Sry soweit habe ich nicht gedacht. Wollte eigentlich etwas im Sinne von "Hamster != null" machen

0
@PerfectMuffin

Dann gäbe es aber die Methoden "MoveUp" und "MoveDown" nicht, denn boolean ist ein elementarer Typ. Und da es in der Frage ja explizit um Java geht, komme ich nicht umhin, nocheinmal zu betonen, dass: Java != JavaScript.

0