Die Untersuchung der C # "Else" Statement

Einige Code muss für sich gegenseitig ausschließende Bedingungen überprüfen. Beispielsweise das folgende Codesegment das Maximum der zwei Zahlen speichert, ein und b, in der variablen max:

// Speichern Sie das Maximum von a und b in die Variable max.
int Max-
// Wenn a größer als b ist. . .
if (a> b)
{
//. . .save a als das Maximum.
max = a-
}
// Wenn a kleiner oder gleich b. . .
wenn ein lt; = b)
{
//. . .save b als Maximum.
max = b-


}

Der Zweite ob Erklärung erübrigt Verarbeitung, da die beiden Bedingungen gegenseitig ausschließen. Ob ein ist größer als b, dann ein kann möglicherweise nicht kleiner als oder gleich b. C # definiert ein sonst Klausel nur für diesen Fall. Das sonst Schlüsselwort definiert einen Block von Code, wenn das der ausgeführt wird ob Block nicht.

Das Codesegment, das die maximale zu berechnen erscheint nun wie folgt:

// Speichern Sie das Maximum von a und b in die Variable max.
int Max-
// Wenn a größer als b ist. . .
if (a> b)
{
//. . .save sonst als Maximal-. . .
max = a-
}
sonst
{
//. . .save b als Maximum.


max = b-
}

Ob ein ist größer als b, der erste Block executed- sonst der zweite Block wird ausgeführt. Schlussendlich, max enthält die größere von ein oder b.

Vermeiden sogar die sonst

Sequenzen sonst Klauseln verwirrend sein kann. Einige Programmierer wie sie zu vermeiden, wenn sie dies tun nicht noch mehr Verwirrung führen. Sie könnten die maximal Berechnung wie folgt schreiben:

// Speichern Sie das Maximum von a und b in die Variable max.
int Max-
Starten Sie unter der Annahme von // dass a größer als b ist.
max = a-
// Wenn es das nicht ist . . .
wenn (b> a)
{
//. . . dann können Sie Ihre Meinung ändern.
max = b-
}

Einige Programmierer vermeiden diesen Stil wie die Pest. Sie sehen beide diesen Stil und die "anderen Art" im allgemeinen Gebrauch.

Programmierer, die kühl und kryptisch wie oft sein verwenden die ternäre Operator, :?, entspricht einer if / else in einer Zeile:

bool informellen = Echt-
string name = informell: "Chuck"? "Charles" - // Returns "Chuck".

Dies wertet den Ausdruck vor dem Doppelpunkt. Wenn es wahr ist, gibt es den Ausdruck nach dem Doppelpunkt, aber vor dem Fragezeichen. Wenn nicht, gibt es den Ausdruck nach dem Fragezeichen. Damit wird eine if / else in einen Ausdruck.

Im Allgemeinen dauert es verwenden nur selten, weil es wirklich ist kryptisch.

Menü