C# skip rest der if-Anweisung, wenn die innere, wenn gilt
mein code ist wie folgt:
public void Method()
{
if (flagIsUp)
{
if (x = 1)
code here;
if (y = 2)
code here;
if (z = 3)
code here;
}
if (buttonPressed)
{
code here;
}
}
Was bringe ich unter, wenn (y = 2), so dass, wenn seine WAHRE, werde es überspringen, um den rest der "wenn (flagIsUp)" - block (d.h. Sie überspringen die "if (z = 3)" - Anweisung), und fahren Sie mit der Methode (D. H. bewegen Sie sich auf "if (buttonPressed)"? Ich habe versucht, break;, aber das erfordert eine Schleife. Mit return; einfach endet-Methode(), das überspringen durch den rest des Codes, das ist nicht meine Absicht.
- Sind
x
,y
undz
wirklich getrennte Variablen? - dies wird nicht kompilieren, müssen Sie == nicht = (Vergleich vs assignemnt)
- Es wird auch nicht kompilieren, weil "code hier" ungültige code - ich denke, das ist pseudo-code.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit dem Konstrukt, die Sie bekommen haben, gibt es keine einfache Keywords, die Sie verwenden können. Sollten Sie es modifizieren, um die Verwendung
else
:Erstens, = Abtretungsempfänger == testet auf Gleichheit.
Sagte, die meisten der Zeit, auch hier
else
sollte ausreichen:Verwenden Sie ein
else
zu accomlpish dieseOriginal-code mit meinem Marker für Klarheit
klingt wie Sie wollen ein anderes
Können Sie eine
else
vor derif
, aber ich würde empfehlen, die zusätzlichen Klammern, wenn Sie tun.Verschieben Sie den code, um eine Funktion:
Hier sind einige Antworten und explenations, wie Sie laufen im back-end (so wie das Verständnis für das WARUM wird Ihnen hilfreich sein im langen Lauf)
Eine einfache Antwort streckte, ist die Verwendung
else
vor jeder der nachfolgendenif
Aussagen wie soWas endet dies läuft wie nach der Kompilierung ist mehr wie
Diese Anordnung zeigt, wie die if-else if "abdrücken" Unterprogramme im bedingten. Wenn A wahr ist, dann springt der code für B-und C-alle-zusammen. Wenn A falsch und B ist wahr, C ist übersprungen. Wenn A und B false C: wird überprüft.
Einen anderen Weg, dies zu erreichen, legen diese Prüfung in eine private Methode von selbst-und Rückreise, wenn es eine true-Bedingung ist erfüllt
Diese Weise, die code-Ausführung Stoppt und kehrt aus der Methode, die auf der ersten wahren Bedingung. Wenn A wahr ist, tun code und zurück, sonst weiter zu B...
Eine Sache, die eine überlegung Wert ist, können Sie das Programm umgestaltet werden, so dass X -, Y-und Z dargestellt werden kann, in einer einzigen enum? Da
x==1
,y==2
, undz==3
schließen sich gegenseitig aus, es könnte ein Weg, um dieser Reihe von Bedingungen mehr lesbar und am Ende mit etwas mehr wieSchließlich, ist es oft hilfreich, für die Leistung, die am wahrscheinlichsten wahren Zustand zuerst.
Können Sie eine goto-Anweisung, auch wenn es nicht gut für die Lesbarkeit des Codes, tun könnte, tun, was Sie wollen ...
goto
bleibt angebracht, in den Fällen, in denen es vereinfacht den code durch Vermeidung von tief verschachtelten Bedingungen und unnötige zusätzliche Helfer Variablen.