While Loop
While Loop
Syntax
while expression
statements
end
Description
example
Examples
collapse all
n = 10;
f = n;
while n > 1
n = n-1;
f = f*n;
end
disp(['n! = ' num2str(f)])
n! = 3628800
Count the number of lines of code in the file magic.m. Skip blank lines and comments
using a continue statement. continue skips the remaining instructions in the while
loop and begins the next iteration.
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
count
count = 31
fclose(fid);
Sum a sequence of random numbers until the next random number is greater than an
upper limit. Then, exit the loop using a break statement.
limit = 0.8;
s = 0;
while 1
tmp = rand;
if tmp > limit
break
end
s = s + tmp;
end
More About
collapse all
Expression
An expression can include relational operators (such as < or ==) and logical operators
(such as &&, ||, or ~). Use the logical operators and and or to create compound
expressions. MATLAB evaluates compound expressions from left to right, adhering to
operator precedence rules.
Within the conditional expression of a while...end block, logical operators & and |
behave as short-circuit operators. This behavior is the same as && and ||, respectively.
Since && and || consistently short-circuit in conditional expressions and statements, it is
good practice to use && and || instead of & and | within the expression. For example,
x = 42;
while exist('myfunction.m','file') && (myfunction(x) >= pi)
disp('Expressions are true')
break
end
The first part of the expression evaluates to false. Therefore, MATLAB does not need to
evaluate the second part of the expression, which would result in an undefined function
error.
Tips
If you inadvertently create an infinite loop (that is, a loop that never ends on its
own), stop execution of the loop by pressing Ctrl+C.
If the conditional expression evaluates to a matrix, MATLAB evaluates the
statements only if all elements in the matrix are true (nonzero). To execute
statements if any element is true, wrap the expression in the any function.
To programmatically exit the loop, use a break statement. To skip the rest of the
instructions in the loop and begin the next iteration, use a continue statement.
When nesting a number of while statements, each while statement requires an
end keyword.