Aula 2.6 - Laço/Repetições em C
Este artigo faz parte do projeto #LTCode
Na aula de hoje aprenderemos sobre laços em C, ou seja aprenderemos como fazer uma linha de código ser repetida, controlar um fluxo de instruções. Para isto vamos utilizar o if, switch, do while, while e for.
Sobre o if e switch já aprendemos na aula anterior, clique aqui para ler caso ainda não leu. Continuando, a instrução while é bastante simples de se aprender.. se conseguir entender ela ficará fácil compreender as outras.
Sua estrutura é a seguinte:
while (condição){
instrução;
incremento;
}
Traduzindo:
enquanto (condição que você determinou) {
faça isso que está aqui dentro das chaves
}
Confira abaixo um exemplo usando while para contar números de 0 a 10:
Como podem observar:
enquanto(contador for menor ou igual a 10){
imprima na tela contador;
soma mais 1 no contador;
}
Ou seja vai ficar no loop imprimindo na tela números até contador valer 10, quando ele valer 10 a condição é falsa e então sai do while.
Para fazer o mesmo código acima utilizando for é fácil, apenas atente-se como funciona uma estrutura do for:
for(carga inicial;condição;pós-condição){
instrução;
}
Note que o incremento já está presente na pós-condição. Confira a comparação entre while e for:
Observe que não era necessário colocar um valor para a variável de incremento no momento da declaração pois ela recebe um valor dentro do for, a carga inicial, mas como temos um while na imagem então tivermos que dar um valor para ela primeiro.
Agora o laço do... while, traduzida como 'faça... enquanto', é um pouco diferente pois a condição é checada no final da primeira repetição, ou seja, as instruções rodarão pelo menos uma vez, mesmo se a condição for falsa.
Confira:
Como ilustra a imagem acima, primeiramente vai imprimir o valor da variável i, depois vai somar +1 nela, passando a valor 21, então a condição é checada: 21 é menor ou igual a 10? Não, então sai do while em vez de continuar no loop.
Já estudamos o comando break na aula anterior, utilizando ele dentro de um laço ele vai sair do laço imediatamente fazendo parar o loop.
Exemplo:
Quando a condição de i ser igual a 2017 for atingida, será impresso o valor de i na tela e em seguida parado o loop afinal chegou no valor que queríamos na condição presente no if.
Existe também o comando continue, que só pode ser utilizada dentro de laços, ele serve para que o loop continue.
Confira um laço que imprime números pares usando 'break' e 'continue':
É possível criar repetições dentro de repetições, isso é chamado de laços encadeados, é útil quando você precisa variar uma variável enquanto outra varia. Exemplo:
while(condição){
while(condição){
instruções;
incremento;
}
incremento;
}
Você também pode necessitar de laços infinitos, ou seja, apresentam condições sempre verdadeiras, tornando uma repetição infinita. Para sair deles você utiliza o break ou return (que aprenderemos futuramente).
Resumindo, o laço while geralmente é utilizado quando não se sabe quantas vezes você precisará da repetição e o for já é mais utilizado quando se sabe quantas vezes o código será repetido, mas isso não é regra.
Resumindo, o laço while geralmente é utilizado quando não se sabe quantas vezes você precisará da repetição e o for já é mais utilizado quando se sabe quantas vezes o código será repetido, mas isso não é regra.
Você deve ter notado nas imagem a utilização do ++ após o nome da variável como: i++. Se leu os comentários do código, já sabe que isso é o mesmo que escrever: i=i+1. O mesmo se aplica ao usar i-- que poderia ser escrito como i=i-1, ou seja está decrementando uma unidade de i.
Mas fique esperto, existe diferenças quanto ao uso dessa forma ++ --.
Como podem observar na imagem acima, k=j++ é diferente de k=++j :
k=j++ significa que k vai receber o valor de j e depois j vai valer j+1.
k=++j significa que k vai receber valor de j+1.
Outro exemplo:
int i=4;
printf("%d",i++ + ++i);
Imprimirá na tela o valor 10.
Em C é possível utilizar de atribuições compostas para diminuir seu código, confira abaixo uns exemplos:
x+=1 é o mesmo que x = x+1
y*=2+3 é o mesmo que y=y*(2+3)
a-=b+1 é o mesmo que a=a-(b+1)
k/=12 é o mesmo que k=k/12
r%=2 é o mesmo que r=r%2
Note que assim você não precisa ficar digitando a variável novamente toda vez que precisa de fazer operações com valores presente nela.
Por hoje é isso, até a próxima.
>> Próxima aula, clique aqui.
COMENTÁRIOS