Laços de Repetição While em MATLAB

Hoje, vamos explorar a implementação de um laço de repetição while no MATLAB.

O que é, afinal, um laço while? Trata-se de uma estrutura de repetição, também conhecida como "loop", que executa um conjunto de comandos diversas vezes, enquanto uma condição específica permanece verdadeira. Cada passagem completa pelo bloco de comandos é conhecida como uma iteração.

O laço while inicia com a avaliação de uma condição lógica. A execução do bloco de comandos só ocorre se essa condição for verdadeira.

while condição
bloco de comandos
end

Esse tipo de loop pode comportar-se de duas maneiras, dependendo da avaliação inicial da condição:

  • Se a condição inicial não for satisfeita logo de início, o laço não executa nem mesmo uma única iteração.
  • Por outro lado, se a condição for verdadeira, o laço executa o bloco de comandos e, após isso, reinicia. O término do laço ocorre quando a condição inicial deixa de ser verdadeira.

Nota: O laço while é considerado indefinido porque o número de iterações necessário pode ser desconhecido. Ele pode não ser executado, realizar algumas ou muitas iterações, ou até mesmo entrar em um ciclo infinito.

Vejamos um exemplo prático:

Este código realiza o cálculo dos quadrados dos números de 1 a 9 através de um laço while.

x=1;
while x<10
disp(x^2);
x=x+1;
end

O laço executa nove iterações, cada uma exibindo o quadrado do número x e incrementando-o em seguida.

Os resultados são apresentados assim:

1
4
9
16
25
36
49
64
81

Neste exemplo, o laço while é um loop definido, pois o número de iterações é conhecido antecip adamente.

Entretanto, nem sempre é o caso. Um laço while pode operar com um número indefinido de iterações, como em situações onde a condição inicial permanece sempre verdadeira, resultando em um loop infinito.

Como prevenir um loop infinito?

Para prevenir a ocorrência de um loop sem fim, é prudente implementar uma condição de saída após um limite de iterações. Isso garante que o laço termine, mesmo que a condição inicial continue sendo atendida.

Considere o seguinte exemplo: um script que gera um número aleatório entre 1 e 100 e pede que o usuário tente adivinhá-lo.

number=randi(100);
x=0;
while x~=number
x = input("Qual número foi sorteado? ")
if (x~=number)
disp("Incorreto!")
else
disp("Acertou!")
break;
end
end

Este é um exemplo de loop indefinido, já que não se pode prever quantas tentativas o usuário fará até acertar o número.

O loop conclui somente quando o usuário acerta o número.

Nota: Em teoria, um usuário poderia fazer até 100 tentativas para acertar o número. Contudo, se o usuário persistir em repetir o mesmo palpite, o loop jamais terminará!

Para contornar o problema de um loop potencialmente infinito, é recomendável adicionar um limite de iterações na estrutura do laço while.

Por exemplo, incluir uma variável contador t que incrementa a cada iteração (t = t + 1), isto é, a cada nova tentativa.

Caso a variável t alcance o valor de 10, o laço será terminado, mesmo que o usuário ainda não tenha acertado o número.

number=randi(100);
x=0;
t=0;
while x~=number
x = input("Qual número foi sorteado?")
if (x~=number)
disp("Incor reto!")
else
disp("Acertou!")
break;
end
t=t+1;
if (t==10)
disp("Excesso de tentativas!");
break;
end

end

Assim, limita-se o usuário a um máximo de dez tentativas.

Essa é uma estratégia eficaz para assegurar que o laço while não se prolongue indefinidamente.

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin

Loops no Matlab