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

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:
  1. Inicialização: onde você define e inicializa a variável de controle.
  2. Condição: a condição que mantém o loop rodando enquanto for verdadeira.
  3. 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;
}

Exercícios relacionados