C# While Loop mit Else Statement machen?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Wenn ich richtig verstehe, was Du willst, sollte es so funktionieren:

while(True){
   if(!vorDir) //Schritt nach vorne
   else //Umgehen
}

Diese while-Schleife würde endlos laufen, statt True solltest Du eine Abbruchbedingung einbauen - etwa, solange, bis ein bestimmter Punkt bzw. eine bestimmte Position (z. B. eine Wand) erreicht ist.

Die Schritte und Variablen musst Du natürlich noch ausprogrammieren - mit den Methoden, die Du eben geschrieben hast.

LG

Hä? Watt willste? Wenn was vor wem ist?

Wenn Du in einem While-Loop prüfen willst, ob das nächste Element in einem Array einen gewissen Wert hat, dann geht folgendes:

int i = 0
while (i < array.Length)
{
  if (i+1 < array.Length && array[i+1] == ...)
    i += 2
  else
     i++
}
JEAMPO 
Fragesteller
 23.01.2019, 09:10

Zum Beispiel ich sage der Figur wenn vor dir ein Baum ist umgehe ihn (Das umgehen habe ich schon gemacht) und wenn nicht geh nach vorn. Die Bewegungen habe ich gemacht aber ich weiss nicht wie ich es umsetzen soll.

Stimmt das?

While (TreeFront())

{

GeheUmBaumHerum(); ---> Nicht relevant für meine Frage

}

else

Move();

0
daCypher  23.01.2019, 09:12
@JEAMPO

Nein, so kannst du das nicht nicht machen. Eher mit einer Endlosschleife, in der halt ein If-Else ist. Also:

While (true)
    if (TreeFront())
    {  
        GeheUmBaumHerum();
    }
    else
    {
        Move();
    }
}

Statt einer Endlosschleife kannst du das While natürlich auch mit einer Bedingung beenden lassen. Z.B. wenn der Rand des Spielfeldes erreicht ist oder eine Liste zu Ende oder sowas.

1
holgerholg  23.01.2019, 09:13
@JEAMPO

Jetzt führt er doch schon die schleife solange aus wie ein baum vor ihm steht und geht erst dann zu Move(); (allrdings musst du das else weglassen)

Wenn er dannach nicht zu move gehen soll, musst du es folgenfermaßen machen:

If (TreeFront())

While (TreeFront()){ ... }

Else

Move();

Else gibt es nur mit If

2

Ich vermute, du suchst den Befehl, um eine Schleife zu verlassen. Dieser lautet break.

while (bedingung) {
  // irgendwas wird gemacht

  if (abbruchbedingung) break;
  // falls zutreffend, wird die Schleife hier beendet

  // irgendwas wird gemacht
}

Edit: Falls deine while-Schleife nicht so verschachtelt ist, solltest du überlegen, die Abbruchbedingung als UND bzw. UND NICHT-Verknüpfung in die while-Bedingung einzufügen.

Woher ich das weiß:Berufserfahrung – Software-Entwicklung (Java Enterprise)

Eine Schleife beeinhaltet doch eine Bedingung, die true oder false ist. ich versteh dein Problem nicht.