Uumm. For some reasons the while (num=num) in our V5R2 was being
executed as true even when num=0.
Strange.
-----Original Message-----
From: c400-l-bounces+lim.hock-chai=usamobility.com@xxxxxxxxxxxx
[
mailto:c400-l-bounces+lim.hock-chai=usamobility.com@xxxxxxxxxxxx] On
Behalf Of Elvis Budimlic
Sent: Monday, April 16, 2007 9:24 AM
To: 'C programming iSeries / AS400'
Subject: Re: [C400-L] upgrade from V5R2 to V5R3.
I have access to a V5R2 box and if num starts with 0, num=num evaluates
to 0 (i.e. false) and while loop will never be entered. This is how I
think it should work (at least that's what I expect the result of the
assignment statement to be and how I've been using it).
If on the other hand num started out as 1, while loop would be entered
and could be exited by setting the num to 0 somewhere in the loop (or
exception or break clause, of course).
On the other hand num==num evaluates to 1 (i.e. true) and will never
exit the while loop unless you get an exception or have a break clause
somewhere inside the while loop.
So, by making the change you made, you've changed the logic of the
program, for the better most likely but I think more investigation is
needed to make sure things are working as originally intended.
Elvis
Celebrating 10-Years of SQL Performance Excellence
-----Original Message-----
To: C programming iSeries / AS400
Subject: [C400-L] upgrade from V5R2 to V5R3.
Our system admin upgraded our test system's OS from V5R2 to V5R3 this
pass weekend. After the upgrade, one of the C program quit working. I
did a debug and notice the following defected code (note: num contains 0
when executing the while statement):
int num;
while (num=num) {
. . .
. . .
}
I changed the while (num=num) to while(num==num) to correct the problem.
My question is why while (num=num) working in V5R2?
--
This is the C programming iSeries / AS400 (C400-L) mailing list To post
a message email: C400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or
change list options,
visit:
http://lists.midrange.com/mailman/listinfo/c400-l
or email: C400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/c400-l.
As an Amazon Associate we earn from qualifying purchases.