×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




David

If at all possible, completely stop using the opcodes that combine the control with the test - DOUEQ is a DOU control with a test for EQ - equality. Use only the controls - then the extended syntax that lets you use parentheses.

Now it is still true that AND has higher precedence - you could write the same cobbled-up mess using the extended syntax. But it is much easier to get the thing you asked for, if I remember what that was.

I sometimes relate the precedence of AND and OR to those of multiplication/division and addition/subtraction - yes, purists may quail at this - but it does make some sense for me. Multiplication has higher precedence - same concept for how to organize with/without parentheses.

Good luck changing all the code that uses those antiquated opcodes. This is also another reason to get away from *QRYDFNs and go with *QMQRYs - those stinking selection settings!!!

Ranting before a vacation day, much needed! Not the ranting, the vacation!!

Vern

On 11/10/2010 11:24 AM, David FOXWELL wrote:
note to self : AND has higher precedence...AND has higher precedence...AND has higher precedence...AND has higher precedence...AND has higher precedence...AND has higher precedence...AND has higher precedence...AND has higher precedence...AND has higher precedence...




-----Message d'origine-----
De : rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] De la part de Elbert Cook
Envoyé : mercredi 10 novembre 2010 14:35
À : 'RPG programming on the IBM i / System i'
Objet : RE: How to read and or statement

Here is a clip from the V5R4 RPG Reference

Condition for the DOUxx, DOWxx, IFxx, and WHENxx operations.
The ANDxx operation has higher precedence than the ORxx operation.


-----Original Message-----
From: David FOXWELL [mailto:David.FOXWELL@xxxxxxxxx]
Sent: Wednesday, November 10, 2010 4:09 AM
To: RPG programming on the IBM i / System i
Subject: How to read and or statement

Consider this code :

C *INKF WHENEQ *ON
C CONDITION1 ANDEQ FALSE

*If I add :
C CONDITION2 OREQ FALSE


I think this now means :

IF (*INKF AND CONDITION1=FALSE) OR (CONDITION2=FALSE)

But I want :
IF *INKF AND (CONDITION1=FALSE OR CONDITION2=FALSE)

Which is right?

Thanks

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.