Conteúdo do Curso
Fundamentos de C
Fundamentos de C
While, Do-While
Imagine um cenário onde você precisa executar repetidamente certas tarefas, como ler dados de um sensor, tentar entradas de senha ou contar palavras em uma frase. Nessas situações, os loops entram em ação.
Os loops permitem que você execute blocos específicos de código várias vezes, sejam dezenas, centenas ou até milhares de vezes. Compreender o conceito de loops é vital na programação. Este curso explora os loops fundamentais: o loop while
, o loop do-while
e o loop for
.
Loop While
Este loop continua executando enquanto uma condição específica é atendida. Uma vez que a condição não é satisfeita, o loop para.
Um uso básico de um loop é exibir a contagem de suas repetições:
Main
#include <stdio.h> int main() { int iterations = 1; // interesting string while (iterations <= 10 ) { printf("%d\n", iterations); iterations++; // iterations = iterations + 1; } return 0; }
Para interromper este loop, uma condição de término é essencial. Uma abordagem simples é usar um contador para rastrear o número de vezes que o loop é executado.
Nota
Uma iteração refere-se a um ciclo único dentro de um loop. Portanto, se o loop executa o bloco de código 10 vezes, ele completou 10 iterações.
A linha iterations++;
é crucial, pois incrementa o contador (int iterations
) a cada passagem. O contador então define as condições para terminar o loop.
Nota
É imperativo estabelecer condições para sair do loop. Não fazê-lo resultará em um loop infinito.
Vamos criar um programa para mostrar os elementos de um array de inteiros:
Main
#include <stdio.h> int main() { int array[] = {3, 6, 2, 134, 45, 2, 564, 8, 3, 531}; int i = 0; // index of array while (i < 10 ) { printf("Index of element: %d\tValue of element: %d\n", i, array[i]); i++; // i = i + 1 } return 0; }
Concentre-se na expressão array[i]
.
Aqui, a variável i
denota o índice dos elementos do array[]
.
Nota
Uma iteração refere-se à contagem de ciclos do loop.
A cada ciclo, a variável i
aumenta em 1. Isso significa que durante cada ciclo, a expressão array[i]
acessa o elemento subsequente do array:
do-while
A principal distinção entre os loops do-while
e while
é que o primeiro garante pelo menos uma execução, mesmo que sua condição seja inicialmente falsa.
Exemplo:
Main
#include <stdio.h> int main() { int i = 0; do { printf("Condition `i == 1` is false, because i = 0, but loop is working...\n"); } while (i == 1); printf("Loop is over\n"); return 0; }
Este tipo de loop é útil para criar interfaces de usuário básicas. Por exemplo, ao solicitar uma senha, o programa pedirá repetidamente até que o usuário insira a correta:
Main
#include <stdio.h> int main() { int userInput[] = { 111, 222, 333, 444 }; // arrays of passwords int i = 0; // index of element do { printf("You entered password: %d | incorrect\n", userInput[i]); i++; } while (userInput[i] != 444); printf("You entered password: %d | correct\n", userInput[i]); return 0; }
Obrigado pelo seu feedback!