# Multiple conditions for while loop.

272 views (last 30 days)
Commented: Shaarif Dilshad on 13 Jan 2021
while (Ea0 >= 0.01)&&(Ea0 >= 0.01)||(Sr >= 10^-4)
This loop keeps on going even though the first part
(Ea0 >= 0.01)&&(Ea1 >= 0.01)
is met i.e. Ea0 and Ea1 dipped below 0.01, why is that?
I want it to stop if
(Ea0 >= 0.01)&&(Ea0 >= 0.01)
or
(Sr >= 10^-4)

Joachim Schlosser on 18 Apr 2016
Error 1: You wrote Ea0 two times, but surely meant to write Ea1 in the second sub expression.
Error 2: Since the && is evaluated before '||, your loop will only end if both sides are false.
What you are describing above is another expression, where you want all sub expressions to hold true for the loop to continue:
while ((Ea0 >= 0.01) || (Ea1 >= 0.01)) && (Sr >= 10^-4)
Note the extra parens around the EaX expressions to specify that both must fail for the loop to end. If you want any sub expression to end the loop, replace '|| again by &&.
Shaarif Dilshad on 13 Jan 2021
if we write 2 times end then this is an error