Dichiarazioni di controllo del loop
Con le dichiarazioni di controllo del loop è possibile eseguire ripetutamente un blocco di codice. Esistono due tipi di loop:
Le dichiarazioni
for
eseguono il loop un numero specifico di volte e tengono traccia di ciascuna iterazione con una variabile indice incrementale.Ad esempio, pre-allocare un vettore di 10 elementi e calcolare cinque valori:
x = ones(1,10); for n = 2:6 x(n) = 2 * x(n - 1); end
Le dichiarazioni
while
eseguono il loop finché una condizione rimane vera.Ad esempio, trovare il primo numero intero
n
per il qualefactorial(n)
è un numero di 100 cifre:n = 1; nFactorial = 1; while nFactorial < 1e100 n = n + 1; nFactorial = nFactorial * n; end
Ogni loop richiede la parola chiave end
.
È buona prassi indentare i loop per garantire la leggibilità, soprattutto quando sono annidati (ossia, quando un loop contiene un altro loop):
A = zeros(5,100); for m = 1:5 for n = 1:100 A(m, n) = 1/(m + n - 1); end end
È possibile uscire in modo programmatico da un loop utilizzando una dichiarazione break
, oppure passare all'iterazione successiva di un loop utilizzando una dichiarazione continue
. Ad esempio, contate il numero di righe della guida della funzione magic
(ossia, tutte le righe di commento fino alla riga vuota):
fid = fopen('magic.m','r'); count = 0; while ~feof(fid) line = fgetl(fid); if isempty(line) break elseif ~strncmp(line,'%',1) continue end count = count + 1; end fprintf('%d lines in MAGIC help\n',count); fclose(fid);
Suggerimento
Se si crea inavvertitamente un loop infinito (ossia un loop che non termina mai da solo), interrompere l'esecuzione del loop premendo Ctrl+C.
Vedi anche
for
| while
| break
| continue
| end