Android Question DO LOOP PROBLEM.

sonistp

Member
dim d, sa as int
Do Until (sa-520)<0
d=d+1
sa=1400-(d*520)
Loop
Log(d)
Log(sa

expected result is sa=360 and d=2
but, i always got sa=0 and d=0

Anyone can help for my problem?
 
When you define your int's they default to 0 so you're straight away saying

Do until -520 < 0 which of course it is and the loop exits immediately.

[you should use the code option to display code by the way like this...]


Code: Copy
    Dim d, sa As Int
    Do Until (sa-520)<0
        d=d+1
        sa=1400-(d*520)
    Loop
    Log(d)
    Log(sa)
 
Upvote 0
EDIT: WRONG ANSWER, IGNORE

You should not use Do Loop anymore

 
Last edited:
Upvote 0
Hi José,
as you indicated it is DoEvents that was deprecated not Do Until loops. Too fast reading? It happens :)
 
Upvote 0
as you indicated it is DoEvents that was deprecated not Do Until loops. Too fast reading?
Ups, you're right, sorry, edit
 
Upvote 0
Code: Copy
 dim
When you define your int's they default to 0 so you're straight away saying

Do until -520 < 0 which of course it is and the loop exits immediately.

[you should use the code option to display code by the way like this...]


Code: Copy
    Dim d, sa As Int
    Do Until (sa-520)<0
        d=d+1
        sa=1400-(d*520)
    Loop
    Log(d)
    Log(sa)
Thankyou for you answer really help me for this situation.
So, i must define value of sa after define the int of sa.
 
Upvote 0
So, i must define value of sa after define the int of sa.

You don't *have* to define a value as an int gets set to 0 but it appears in this case you may want to.

You can combine the definition like this...

B4X: Copy
dim sa as int = 999 'or whatever value'

However your logic is flawed to get the results you are trying to achieve. Setting sa to anything above 520 will allow your loop to function but it will always result in an output where d = 0 and sa = whatever value you use. You should try stepping through your code (use the F8 key) to see what's happening line by line.
 
Upvote 0
Back
Top