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;
}