Autor Beitrag
MetaPhy
Hält's aus hier
Beiträge: 10

Win XP

BeitragVerfasst: Sa 03.03.07 21:55 
Hallo zusammen,

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

ausblenden 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:


ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 03.03.07 21:59 
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*

ausblenden 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
MetaPhy Threadstarter
Hält's aus hier
Beiträge: 10

Win XP

BeitragVerfasst: Sa 03.03.07 22:14 
Danke dir!
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 04.03.07 14:00 
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,
ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".