Converta o loop while abaixo para um loop for que imprima o mesmo texto na tela. (4 pts)
int mainO
{
int i;
scanf (%d, &i);
while (i<10) {
printf (Ola\n);
i++;
}
return 0;
}
int mainO
{
int i;
scanf (%d, &i);
while (i<10) {
printf (Ola\n);
i++;
}
return 0;
}
Passo 1
Beleza, vamos resolver esse exercício juntos! A questão pede para transformar um loop while em um loop for que faça a mesma coisa: imprimir “Ola” na tela enquanto uma condição for verdadeira. A matéria envolvida aqui são estruturas de repetição em programação, especificamente os loops
while
e for
. Para resolver, vamos precisar entender como cada tipo de loop funciona e identificar como transformar a lógica de um para o outro.Passo 2
Primeiro, vamos dar uma olhada no loop
while
que foi fornecido:int main()
{
int i;
scanf("%d", &i);
while (i < 10) {
printf("Ola\n");
i++;
}
return 0;
}
Aqui, o programa lê um valor para
i
e, enquanto i
for menor que 10, imprime “Ola” e incrementa i
em 1. O while
é ótimo para repetir algo enquanto uma condição é verdadeira, mas às vezes um for
pode deixar o código mais organizado, especialmente quando sabemos de antemão quantas vezes queremos repetir.Passo 3
Agora, vamos lembrar como funciona um loop
for
. Ele geralmente tem três partes principais dentro dos parênteses:- Inicialização: onde você define e inicializa a variável de controle.
- Condição: a condição que mantém o loop rodando enquanto for verdadeira.
- Incremento: como a variável de controle será alterada a cada iteração.
A sintaxe básica é:
for (inicialização; condição; incremento) {
// código a ser repetido
}
Passo 4
No nosso loop
while
, a inicialização da variável i
acontece antes do loop com scanf("%d", &i);
. A condição é i < 10
, e o incremento é i++
dentro do loop. Para transformar isso em um for
, precisamos encaixar essas três partes.Passo 5
Vamos começar criando o loop
for
. Já que a inicialização vem de fora (com o scanf
), podemos deixar a parte da inicialização do for
vazia ou mantê-la fora. Porém, para manter tudo dentro do for
, vamos ajustar o código.Entretanto, como a inicialização depende de uma entrada do usuário, mantenho o
scanf
antes do for
. Então, nosso for
vai ficar com a condição e o incremento.Passo 6
Aqui está como o loop
for
vai ficar:int main()
{
int i;
scanf("%d", &i);
for (; i < 10; i++) {
printf("Ola\n");
}
return 0;
}
Note que na inicialização do
for
, deixamos vazio (;
) porque já inicializamos i
com o scanf
antes do loop. A condição i < 10
e o incremento i++
estão posicionados nas suas respectivas partes do for
.Resposta
#include <stdio.h>
int main()
{
int i;
scanf("%d", &i);
for (; i < 10; i++) {
printf("Ola\n");
}
return 0;
}