Contenuto principale

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 quale factorial(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

| | | |

Siti web esterni