while - while loop to repeat when condition

is true - MATLAB (original) (raw)

Main Content

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)])

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

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

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

Extended Capabilities

Version History

Introduced before R2006a