Anmelden

View Full Version : Vergleichs oder Zuweisungsoperator



bofrost
30-01-12, 12:59
Hallo,

Ich habe gerade gesehen im beitrag von Vigi (http://newsolutions.de/forum-systemi-as400-i5-iseries/newsboard-programmierung/17301-api-gesucht.html) gesehen, dass man = auch außerhalb von IF BZW DOW etc. als Vergleisoperator verwenden kann:

*IN79 = (HILF2 = %Int(HILF2));

Wie entscheidet der Compiler wann = ein Zuweisungs bzw. wann es ein Vergleichsoperator ist?

Kann ich wie z.B. in C auch eine Zuweisung in einer IF-Abfrage machen?

Fuerchau
30-01-12, 13:28
Für ILERPG ist das einfach, das 1. "=" ist die Zuweisung, die restlichen (es kann auch mehr geben) sind Vergleiche, die Wahr "1" oder Falsch "0" zurückgeben.

In C ist das eindeutiger geregelt:
= : Zuweisung
== : Vergleich

if ((A = B) == C)

Weist A den Wert B zu und vergleicht anschliessend mit C.
In If's ist das allerdings mit Vorsicht zu verwenden:

if ((A = B) == C && (D = E) == F)

Wenn die 1. Bedingung nicht zutrifft, erfolgt auch die Zuweisung in der 2. Bedingung nicht!

Pikachu
30-01-12, 14:15
Expression Operators (http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/topic/com.ibm.etools.iseries.langref.doc/c0925086590.htm)