Skip to main content
Logo image

Subsection Additional Flow Control: continue, break, return

MATLAB provides commands that modify normal loop flow. These are most often used inside an if-statement within a loop.
Table 36. Flow control commands for loops
Command Effect
continue Skip the rest of the current iteration and move to the next iteration.
break Exit the loop immediately and continue after end.
return Exit the current script or function immediately.
Important notes:
  • These commands only execute if MATLAB reaches the line where they appear.
  • continue and break may only be used inside a for- or while-loop; using them elsewhere causes an error.
  • return can be used anywhere inside a script or function to exit early.

🌌 Example 37. Searching with break.

A loop can search for a target value and stop early when found. The break command exits the loop immediately.
target = 10;

found = false;
location = -1;

for k = 1:50
    value = randi([-20 20]);   % generate one random integer

    if value == target
        found = true;
        location = k;
        break
    end
end

if found
    fprintf('The number %i was found on iteration %i\n', target, location)
else
    fprintf('The number %i was not found in 50 trials\n', target)
end
This patternβ€”test a condition, then exit early with breakβ€”is useful whenever you want to stop searching once you find what you need.

🌌 Example 38. Example: Testing for Primality.

An integer greater than 1 is prime if it has no divisors other than 1 and itself. This loop tests potential divisors and stops early if it finds one:
number = 75913;

if number < 2
	is_prime = false;
else
	divider = 2;
	is_prime = true;

	while divider <= sqrt(number)
		if mod(number, divider) == 0
			is_prime = false;
			break
		end
		divider = divider + 1;
	end
end

if is_prime
	fprintf('The number %0.10g is prime!\n', number)
else
	fprintf('The number %0.10g is not prime!\n', number)
end
We only need to test divisors up to \(\sqrt{\text{number}}\text{,}\) which makes the loop much faster for large inputs. The break command exits as soon as a divisor is found.