|
Then how would using an elseif change any outcome? I thought IF, ELSE, IF, ELSE, ENDIF is exactly the same as IF, ELSEIF, ELSE, ENDIF. Am I wrong? Ron Power Programmer Information Services City Of St. John's, NL P.O. Box 908 St. John's, NL A1C 5M2 709-576-8132 rpower@xxxxxxxxxx http://www.stjohns.ca/ ___________________________________________________________________________ Success is going from failure to failure without a loss of enthusiasm. - Sir Winston Churchill "Joe Pluta" <joepluta@xxxxxxxxxxxxxxxxx> Sent by: rpg400-l-bounces@xxxxxxxxxxxx 2006/05/25 04:23 PM Please respond to RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx> To "'RPG programming on the AS400 / iSeries'" <rpg400-l@xxxxxxxxxxxx> cc Subject RE: Having both if/else executing at the same time Actually, the original code simply selected among three mutually exclusive conditions. Using an ELSEIF doesn't change the outcome at all. IF CondA; DoA; ELSE; IF CondB; DoB; ELSE; DoC; ENDIF; ENDIF; Is functionally equivalent to: IF CondA; DoA; ELSEIF CondB; DoB; ELSE; DoC; ENDIF; The ELSEIF just removes the second "endif" (which you accidentally left in your post, Bob, LOL!). This is also functionally equivalent to: SELECT; WHEN CondA; DoA; WHEN CondB; DoB; OTHER; DoC; ENDSL; Nowadays I tend towards the third form if there are more than two mutually exclusive conditions. It should be noted that the three conditions being selected among are (CondA), ((NOT CondA) and (CondB)), and finally ((NOT CondA) and (NOT CondB)). That is, even if both CondA and CondB are true, only the first branch of the code will be executed. Joe > From: Bob Cozzi > > ELSE and IF are two statements. In your code the only time the second IF > will be > performed is when the first IF fails. Why? Because the first ELSE is only > going > to be run if the first IF fails. Otherwise it'll jump to the ENDIF > statements. > I think what you really mean to have is ELSEIF not "ELSE" and "IF". > Replace the ELSE and IF with ELSEIF, and then take a look as this page: > > www.rpgiv.com/blueribbon.html > > if %len(%trim(APIErrMsg)) > 0; > W#ERFL = *ON; > W#MSDT = 'Error #' + APIErrMsg + ' receiving data from ' + > 'data queue. Detail: ' + APIErrDta; > elseif %trim(itmInfo) = ''; > W#ERFL = *ON; > W#MSDT = 'Invalid data received from data queue: ' + > itmInfo ; > else; > uMATNO = jMATNO; > uSIZE = jSIZE; > uTEMPER = jTEMPER; > uINSUL = jINSUL; > uTENSIL = jTENSIL; > endif; > endif;
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 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.