Entwickler-Ecke

C# - Die Sprache - Mehrere Bedingungen in if-Abfrage


MetaPhy - Sa 03.03.07 21:55
Titel: Mehrere Bedingungen in if-Abfrage
Hallo zusammen,

ich möchte verschiedene int-Variablen in einer if-Abfrage vergleichen (auf Gleichheit bzw. Ungleichheit). So kriege ich es schonmal hin:


C#-Quelltext
1:
2:
3:
if (a==b)
{
}


Nun will ich aber in ein und derselben if-Abfrage mehrere solche Gleichungen stehen haben, etwa so von der Idee her:



C#-Quelltext
1:
2:
3:
if (a==b) and (a==d) and (u==v) and ...
{
}


Die Konjunktion and (oder auch or) scheint es leider nicht zu geben (verwende ich gerne in der Programmierungen von Taschenrechnerprogrammen), wie macht mans stattdessen?

Gruß
Hüseyin


Christian S. - Sa 03.03.07 21:59
Titel: Re: Mehrere Bedingungen in if-Abfrage
user profile iconMetaPhy hat folgendes geschrieben:
Die Konjunktion and (oder auch or) scheint es leider nicht zu geben
Doch, gibt es natürlich. Wäre 'ne tolle Sprache, wenn's das nicht gäbe *g*


C#-Quelltext
1:
2:
3:
if (a==b && a==d && u==v)
{
}


Für "oder" benutzt man "||".

Wie Du oben siehst, musst Du in C# die einzelnen Teile (a==b) nicht in Klammern setzen. Das liegt daran, dass "&&" nur bool'scher Operator ist und nicht wie bei Delphi auch noch das binäre "und" darstellt. Somit ist klar, wie der Ausdruck auszuwerten ist auch ohne die Klammern. Nur die Klammern außen drum sind natürlich Pflicht.


MetaPhy - Sa 03.03.07 22:14

Danke dir!


Kha - So 04.03.07 14:00
Titel: Re: Mehrere Bedingungen in if-Abfrage
user profile iconChristian S. hat folgendes geschrieben:
Das liegt daran, dass "&&" nur bool'scher Operator ist und nicht wie bei Delphi auch noch das binäre "und" darstellt. Somit ist klar, wie der Ausdruck auszuwerten ist auch ohne die Klammern. Nur die Klammern außen drum sind natürlich Pflicht.
Nicht ganz,

C#-Quelltext
1:
if (a == b & a == d & u == v)                    

funktioniert genauso ;) . Es stimmt aber, dass sich die Operatorrangfolge von C# und Delphi unterscheidet, zumindest in diesem Fall zum Vorteil.


Christian S. - So 04.03.07 14:01

//edit: Streich das Nachfolgende ;-)

Das ändert aber nichts an meiner Aussage. Auch in diesem Fall ist dadurch, dass "&" nur das binäre "und" ist, klar, wie das ausgewertet werden soll.