## Documentation Center |

Repeatedly execute statements while condition is true

whileexpressionendstatements

`while expression, statements,
end` repeatedly executes one or more MATLAB

An evaluated expression is true when the result is nonempty and contains all nonzero elements (logical or real numeric). Otherwise, the expression is false.

Expressions can include relational operators (such as `<` or `==`)
and logical operators (such as `&&`, `||`,
or `~`). MATLAB evaluates compound expressions
from left to right, adhering to operator precedence rules.

if or while statement,
logical operators & and | behave
as short-circuit operators. This behavior is the same as && and ||,
respectively. Since && and || consistently
short-circuit in if and while condition
expressions and statements, it is good practice to use && and || instead
of & and | within .expression |

Find the first integer `n` for which `factorial(n)` is
a 100-digit number.

n = 1; nFactorial = 1; while nFactorial < 1e100 n = n + 1; nFactorial = nFactorial * n; end

Count the number of lines of code in the file `magic.m`,
skipping all blank lines and comments.

fid = fopen('magic.m','r'); count = 0; while ~feof(fid) line = fgetl(fid); if isempty(line) || strncmp(line,'%',1) || ~ischar(line) continue end count = count + 1; end fprintf('%d lines\n',count); fclose(fid);

Find the root of the polynomial *x*^{3 }-
2*x* - 5 using interval bisection.

a = 0; fa = -Inf; b = 3; fb = Inf; while b-a > eps*b x = (a+b)/2; fx = x^3-2*x-5; if fx == 0 break elseif sign(fx) == sign(fa) a = x; fa = fx; else b = x; fb = fx; end end disp(x)

Take advantage of short-circuiting to avoid error or warning messages.

x = 42; while exist('myfunction.m') && (myfunction(x) >= pi) disp('Condition is true') break end

`break` | `continue` | `end` | `for` | `if` | `Logical Operators:
Short Circuit` | `return` | `switch`

Was this topic helpful?