Author |
Topic: IF < less than not working (Read 684 times) |
|
Wendell
New Member
member is offline


Posts: 28
|
 |
IF < less than not working
« Thread started on: Mar 19th, 2014, 04:42am » |
|
(DIV) mun=RND(10) ned=RND(10) IF mun<ned THEN (DIV) PRINT mun PRINT ned
WHY does the IF statement not working ?
|
|
Logged
|
|
|
|
rtr
Guest
|
 |
Re: IF < less than not working
« Reply #1 on: Mar 19th, 2014, 09:35am » |
|
on Mar 19th, 2014, 04:42am, Wendell wrote:WHY does the IF statement not working ? |
|
You forgot the GOTO:
Code: IF mun<ned THEN GOTO (DIV) I know we keep telling you not to use GOTOs, but you can't simply omit them! This is the way to avoid the GOTO:
Code: REPEAT
mun=RND(10)
ned=RND(10)
UNTIL mun>=ned
PRINT mun
PRINT ned I'm sure you will agree that it's easier to understand than your version, the automatic indentation emphasises the structure, and there are no GOTOs!
As has been recommended previously you really should work through the Beginners' Tutorial to learn the basics; find it in the Help menu or here:
http://bb4w.com/tutorial/
Richard.
|
|
Logged
|
|
|
|
DDRM
Administrator
member is offline


Gender: 
Posts: 321
|
 |
Re: IF < less than not working
« Reply #2 on: Mar 21st, 2014, 09:54am » |
|
Hi Wendell,
Even with the GOTO your code still fails, because the label you have chosen (DIV) is a reserved keyword, which causes problems for the interpreter. Note that it is coloured yellow rather than blue in the IDE. If you change it to Div it will work.... if you insist on using GOTOs! :-)
But in this particular case, wouldn't SWAP be a better option, even than Richard's REPEAT...UNTIL?
Code:
mun=RND(10)
ned=RND(10)
IF mun<ned THEN SWAP mun,ned
PRINT mun
PRINT ned
Hope that's helpful.
D
|
|
Logged
|
|
|
|
rtr
Guest
|
 |
Re: IF < less than not working
« Reply #3 on: Mar 21st, 2014, 10:58am » |
|
on Mar 21st, 2014, 09:54am, DDRM wrote: Code:
mun=RND(10)
ned=RND(10)
IF mun<ned THEN SWAP mun,ned
PRINT mun
PRINT ned |
|
The reason I'm not keen on that solution is that it cannot be generalised. For example suppose the OP decides that he wants 'ned' to be less than 'mun', rather than less than or equal to 'mun'. Making the following modification to your code doesn't work:
Code: IF mun<=ned THEN SWAP mun,ned Instead it would be necessary to return to the REPEAT...UNTIL solution to ensure 'mun' and 'ned' are unequal.
Of course it all depends on whether that change is a likely requirement or not, but assuming the program generates fractions ('ned' being the denominator and 'mun' the numerator) it doesn't seem too improbable to me.
Richard.
|
|
Logged
|
|
|
|
|