Loops em C: instruções de loop For, While, Do While [Exemplos]
O que é Loop em C?
Instruções de loop em C execute a sequência de instruções muitas vezes até que a condição declarada se torne falsa. Um loop em C consiste em duas partes, um corpo de loop e uma instrução de controle. A instrução de controle é uma combinação de algumas condições que direcionam o corpo do loop para execução até que a condição especificada se torne falsa. O objetivo do loop C é repetir o mesmo código várias vezes.
Tipos de loops em C
Dependendo da posição de uma instrução de controle em um programa, a instrução de loop em C é classificada em dois tipos:
1. Loop controlado de entrada
2. Sair do loop controlado
Em um malha de controle de entrada em C, uma condição é verificada antes de executar o corpo de um loop. Também é chamado de loop de pré-verificação.
Em um saída do circuito controlado, uma condição é verificada após a execução do corpo de um loop. Também é chamado de loop de pós-verificação.
As condições de controle devem ser bem definidas e especificadas, caso contrário o loop será executado um número infinito de vezes. O loop que não para de executar e processa as instruções várias vezes é chamado como um Loop infinito. Um loop infinito também é chamado de “Loop sem fim.” A seguir estão algumas características de um loop infinito:
1. Nenhuma condição de rescisão é especificada.
2. As condições especificadas nunca são atendidas.
A condição especificada determina se o corpo do loop deve ser executado ou não.
A linguagem de programação 'C' nos fornece três tipos de construções de loop:
1. O loop while
2. O loop do-while
3. O loop for
Sr. Não. | Tipo de loop | Descrição |
---|---|---|
1. | Enquanto Loop | No loop while, uma condição é avaliada antes de processar o corpo do loop. Se uma condição for verdadeira, então, e somente então, o corpo de um loop será executado. |
2. | Loop Do-While | Em um loop do…while, a condição é sempre executada após o corpo de um loop. Também é chamado de loop controlado por saída. |
3. | Para Loop | Em um loop for, o valor inicial é executado apenas uma vez, então a condição testa e compara o contador com um valor fixo após cada iteração, interrompendo o loop for quando false é retornado. |
Enquanto Loop em C
Um loop while é a estrutura de loop mais direta. A sintaxe do loop while na linguagem de programação C é a seguinte:
Sintaxe do loop While em C
while (condition) { statements; }
É um loop controlado por entrada. No loop while, uma condição é avaliada antes de processar o corpo do loop. Se uma condição for verdadeira, então, e somente então, o corpo de um loop será executado. Depois que o corpo de um loop é executado, o controle volta novamente ao início e a condição é verificada se for verdadeira, o mesmo processo é executado até que a condição se torne falsa. Quando a condição se torna falsa, o controle sai do loop.
Após sair do loop, o controle vai para as instruções imediatamente após o loop. O corpo de um loop pode conter mais de uma instrução. Se contiver apenas uma instrução, as chaves não são obrigatórias. É uma boa prática usar chaves, mesmo que tenhamos uma única instrução no corpo.
No loop while, se a condição não for verdadeira, o corpo do loop não será executado, nem mesmo uma vez. É diferente no loop do while que veremos em breve.
O programa a seguir ilustra o loop while no exemplo de programação C:
#include<stdio.h> #include<conio.h> int main() { int num=1; //initializing the variable while(num<=10) //while loop with condition { printf("%d\n",num); num++; //incrementing operation } return 0; }
Saída:
1 2 3 4 5 6 7 8 9 10
O programa acima ilustra o uso do loop while. No programa acima, imprimimos séries de números de 1 a 10 usando um loop while.
- Inicializamos uma variável chamada num com valor 1. Vamos imprimir de 1 a 10, portanto, a variável é inicializada com valor 1. Se você deseja imprimir de 0, atribua o valor 0 durante a inicialização.
- Em um loop while, fornecemos uma condição (num<=10), o que significa que o loop executará o corpo até que o valor de num se torne 10. Depois disso, o loop será encerrado e o controle sairá do loop.
- No corpo de um loop, temos uma função print para imprimir nosso número e uma operação de incremento para incrementar o valor por execução de um loop. Um valor inicial de num é 1, após a execução se tornará 2 e durante a próxima execução se tornará 3. Este processo continuará até que o valor se torne 10 e então imprimirá a série no console e encerrará o loop .
\n é usado para fins de formatação, o que significa que o valor será impresso em uma nova linha.
Loop Do-While em C
Um loop do…while em C é semelhante ao loop while, exceto que a condição é sempre executada após o corpo de um loop. Também é chamado de loop controlado por saída.
A sintaxe do loop do while na linguagem de programação C é a seguinte:
Sintaxe do loop Do-While em C
do { statements } while (expression);
Como vimos em um loop while, o corpo é executado se e somente se a condição for verdadeira. Em alguns casos, temos que executar o corpo do loop pelo menos uma vez, mesmo que a condição seja falsa. Este tipo de operação pode ser alcançado usando um loop do-while.
No loop do-while, o corpo de um loop é sempre executado pelo menos uma vez. Depois que o corpo é executado, ele verifica a condição. Se a condição for verdadeira, ele executará novamente o corpo de um loop, caso contrário o controle será transferido para fora do loop.
Semelhante ao loop while, uma vez que o controle sai do loop, as instruções que estão imediatamente após o loop serem executadas.
A diferença crítica entre o loop while e do-while é que no loop while o while é escrito no início. No loop do-while, a condição while é escrita no final e termina com ponto e vírgula (;)
O seguinte programa de loop em C ilustra o funcionamento de um loop do-while:
Abaixo está um loop do-while no exemplo C para imprimir uma tabela do número 2:
#include<stdio.h> #include<conio.h> int main() { int num=1; //initializing the variable do //do-while loop { printf("%d\n",2*num); num++; //incrementing operation }while(num<=10); return 0; }
Saída:
2 4 6 8 10 12 14 16 18 20
No exemplo acima, imprimimos a tabuada de 2 usando um loop do-while. Vamos ver como o programa conseguiu imprimir a série.
- Primeiro, inicializamos uma variável 'num' com valor 1. Em seguida, escrevemos um loop do-while.
- Em um loop, temos uma função de impressão que imprimirá a série multiplicando o valor de num por 2.
- Após cada incremento, o valor de num aumentará em 1 e será impresso na tela.
- Inicialmente, o valor de num é 1. No corpo de um loop, a função print será executada desta forma: 2*num onde num=1, então 2*1=2 portanto o valor dois será impresso. Isso continuará até que o valor de num se torne 10. Depois disso, o loop será encerrado e uma instrução imediatamente após o loop será executada. Neste caso retorne 0.
Para loop em C
Um loop for é uma estrutura de loop mais eficiente na programação 'C'. A estrutura geral da sintaxe do loop for em C é a seguinte:
Sintaxe do For Loop em C
for (initial value; condition; incrementation or decrementation ) { statements; }
- O valor inicial do loop for é executado apenas uma vez.
- A condição é uma expressão booleana que testa e compara o contador com um valor fixo após cada iteração, interrompendo o loop for quando false é retornado.
- A incrementação/decrementação aumenta (ou diminui) o contador em um valor definido.
O programa a seguir ilustra o loop for no exemplo de programação C:
#include<stdio.h> int main() { int number; for(number=1;number<=10;number++) //for loop to print 1-10 numbers { printf("%d\n",number); //to print the number } return 0; }
Saída:
1 2 3 4 5 6 7 8 9 10
O programa acima imprime a série numérica de 1 a 10 usando o loop for.
- Nós declaramos um variável de um tipo de dados int para armazenar valores.
- No loop for, na parte de inicialização, atribuímos o valor 1 à variável número. Na parte da condição, especificamos nossa condição e depois a parte do incremento.
- No corpo de um loop, temos uma função print para imprimir os números em uma nova linha no console. Temos o valor um armazenado em número, após a primeira iteração o valor será incrementado, passando a ser 2. Agora a variável número tem o valor 2. A condição será verificada novamente e como a condição é verdadeira o loop será executado, e imprimirá dois na tela. Este loop continuará sendo executado até que o valor da variável seja 10. Depois disso, o loop será encerrado e uma série de 1 a 10 será impressa na tela.
Em C, o loop for pode ter múltiplas expressões separadas por vírgulas em cada parte.
Por exemplo:
for (x = 0, y = num; x < y; i++, y--) { statements; }
Além disso, podemos pular a expressão, condição e/ou incremento do valor inicial adicionando um ponto e vírgula.
Por exemplo:
int i=0; int max = 10; for (; i < max; i++) { printf("%d\n", i); }
Observe que os loops também podem ser aninhados onde há um loop externo e um loop interno. Para cada iteração do loop externo, o loop interno repete todo o seu ciclo.
Considere o seguinte exemplo com múltiplas condições no loop for, que usa loop for aninhado na programação C para gerar uma tabela de multiplicação:
#include <stdio.h> int main() { int i, j; int table = 2; int max = 5; for (i = 1; i <= table; i++) { // outer loop for (j = 0; j <= max; j++) { // inner loop printf("%d x %d = %d\n", i, j, i*j); } printf("\n"); /* blank line between tables */ }}
Saída:
1 x 0 = 0 1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 2 x 0 = 0 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10
O aninhamento de loops for pode ser feito em qualquer nível. Os loops aninhados devem ser recuados adequadamente para tornar o código legível. Em algumas versões de 'C', o aninhamento é limitado a 15 loops, mas algumas fornecem mais.
Os loops aninhados são usados principalmente em aplicativos de array que veremos em tutoriais futuros.
Instrução de quebra em C
A instrução break é usada principalmente no instrução switch. Também é útil para interromper imediatamente um loop.
Consideramos o seguinte programa que introduz uma pausa para sair de um loop while:
#include <stdio.h> int main() { int num = 5; while (num > 0) { if (num == 3) break; printf("%d\n", num); num--; }}
Saída:
5 4
Continuar declaração em C
Quando você quiser pular para a próxima iteração, mas permanecer no loop, você deve usar a instrução continue.
Por exemplo:
#include <stdio.h> int main() { int nb = 7; while (nb > 0) { nb--; if (nb == 5) continue; printf("%d\n", nb); }}
Saída:
6 4 3 2 1
Portanto, o valor 5 é ignorado.
Qual loop selecionar?
A seleção de um loop é sempre uma tarefa difícil para um programador, para selecionar um loop siga os seguintes passos:
- Analise o problema e verifique se ele requer um loop de pré-teste ou pós-teste.
- Se for necessário um pré-teste, use um while ou um loop.
- Se o pós-teste for necessário, use um loop do-while.
Resumo
- Definir loop em C: Um Loop é um dos conceitos-chave em qualquer Linguagem de programação. Loops em linguagem C são implementados usando instruções condicionais.
- Um bloco de instruções de controle de loop em C é executado várias vezes até que a condição se torne falsa.
- Os loops na programação C são de 2 tipos: controlados por entrada e controlados por saída.
- Liste várias instruções de controle de loop em C: a programação C nos fornece 1) while 2) do-while e 3) for instruções de controle de loop.
- A programação do loop C For e While são loops controlados por entrada na linguagem C.
- Do-while é um loop de controle de saída em C.