|
Yep. I even had a colleague of mine look at the code while we stepped
through it with the debugger. It skipped the statements to be performed
regardless of the program was running in a debugger or from normal call
statement.
One difference between your test and my code is that WS-ORDER-DOES-NOT-EXIST
is an 88 level storage area:
01 WS-ORDER-EXISTS-FLAG PIC S9(01).
88 WS-ORDER-DOES-NOT-EXIST VALUE 0.
88 WS-ORDER-EXISTS VALUE 1.
Could this make a difference? The value of WS-ORDER-EXISTS-FLAG at the time
was 0, so WS-ORDER-DOES-NOT-EXIST was true.
We're using OPM COBOL.
And we were just as perplexed as you... :)
Kelly
-----Original Message-----
From: cobol400-l-bounces@xxxxxxxxxxxx
[mailto:cobol400-l-bounces@xxxxxxxxxxxx]On Behalf Of Finucci Domenico
Sent: Wednesday, March 03, 2004 10:14 AM
To: COBOL Programming on the iSeries/AS400
Subject: R: [COBOL400-L] Question about evaluation of a conditional
statement.
Are you shure ?
I tried:
01 a pic x value "S".
01 b pic x value "S".
** ----------------------
PROCEDURE DIVISION.
if (a equal "S"
and b equal "S" )
display "( OK"
end-if
if a equal "S"
and b equal "S"
display " OK"
end-if
GOBACK.
And it behaves normally (both ILE and CBL, V5R1M0)
Sincerely
Domenico Finucci
-----Messaggio originale-----
Da: Kelly Cookson [mailto:KCookson@xxxxxxxxxxxx]
Inviato: mercoledì 3 marzo 2004 17.01
A: COBOL400-L@xxxxxxxxxxxx
Oggetto: [COBOL400-L] Question about evaluation of a conditional
statement.
While reengineering a program, I created the following conditional
statement:
IF (WS-RISK-CODE = "FX" AND
WS-ORDER-DOES-NOT-EXIST)
<perform some statements>
END-IF.
The conditional statement was evaluated false during the program run even
though WS-RISK-CODE equalled "FX" and WS-ORDER-DOES-NOT-EXIST was true. None
of the statements to be performed were performed.
I then removed the parentheses to result in the following:
IF WS-RISK-CODE = "FX" AND
WS-ORDER-DOES-NOT-EXIST
<perform some statements>
END-IF.
This worked.
I'm not sure I understand how the parentheses caused the problem. I assumed
the order of evaluation within the parentheses would be the relational
operator first and then the logical operator.
Can someone explain it to me?
Thanks,
Kelly
_______________________________________________
This is the COBOL Programming on the iSeries/AS400 (COBOL400-L) mailing list
To post a message email: COBOL400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/cobol400-l
or email: COBOL400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/cobol400-l.
_______________________________________________
This is the COBOL Programming on the iSeries/AS400 (COBOL400-L) mailing list
To post a message email: COBOL400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/cobol400-l
or email: COBOL400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/cobol400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.