Main Content

while

while loop to repeat when condition is true

Syntax

while expression
    statements
end

Description

while expression, statements, end evaluates an expression, and repeats the execution of a group of statements in a loop while the expression is true. An expression is true when its result is nonempty and contains only nonzero elements (logical or real numeric). Otherwise, the expression is false.

example

Examples

collapse all

Use a while loop to calculate factorial(10).

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 = 
37
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

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.

  • The MATLAB while loop is similar to a do...while loop in other programming languages, such as C and C++. However, while evaluates the conditional expression at the beginning of the loop rather than the end.

    do  % Not valid MATLAB syntax
        statements
    while expression
    

    To mimic the behavior of a do...while loop, set the initial condition of while to true and place the conditional expression inside the loop. For example, implement the do...while loop above by using a MATLAB while loop.

    while true
        statements
        if ~expression
            break
        end
    end
    

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced before R2006a