Programação em C# - Exercício 3: Laços de Repetição
Visão Geral
Esta atividade ajudará você a aprender a trabalhar com laços de repetição (loops) em C#.
Material de Preparação
Laços
C# contém quatro tipos de loops:
- while
- do-while
- for
- foreach
Laços While (While Loops)
Os laços while em C# funcionam exatamente da mesma maneira que em Python ou outras linguagens. A única diferença
é que C# usa chaves {} para definir o corpo do laço, e a condição deve ser cercada por parênteses
().
Python
resposta = "sim"
while resposta == "sim":
resposta = input("Você quer continuar?")
C#
string resposta = "sim";
while (resposta == "sim")
{
Console.Write("Você quer continuar?");
resposta = Console.ReadLine();
}
Laços Do-While (Do-While Loops)
Muitas linguagens têm uma construção chamada laço do-while (mas Python não tem). Esse loop funciona da mesma forma que um laço while, com a exceção de que o corpo do loop é executado uma vez primeiro, antes de a verificação ser feita pela primeira vez. Isso significa que o corpo do laço tem a garantia de ser executado pelo menos uma vez.
A sintaxe para um laço do-while é usar a palavra-chave do, seguida pelo corpo, seguido pela
palavra-chave while com a expressão e um ponto e vírgula, conforme mostrado:
string resposta;
do
{
Console.Write("Você quer continuar?");
resposta = Console.ReadLine();
} while (resposta == "sim");
Laços For (For Loops)
O laço for padrão em C# é mais parecido com um laço "for x in range" em Python. A
condição tem três partes, separadas por ponto e vírgula. A primeira inicializa o valor, a segunda é a condição a
ser verificada e a terceira é uma etapa de incremento que é executada no final de cada loop.
O código a seguir exibe a sintaxe de um laço for que conta de 0 a 9.
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
Nesse código, você verá o uso do operador ++ que adiciona 1 ao valor na variável.
O código acima é a maneira mais comum de ver um desses laços, mas você pode colocar outros valores ou instruções nesses locais, como contar de 2 a 20 de dois em dois:
for (int i = 2; i <= 20; i = i + 2)
{
Console.WriteLine(i);
}
Laços Foreach (Foreach Loops)
C# contém um laço foreach que é semelhante ao laço for padrão em Python. É importante lembrar que a variável que faz a iteração deve ter seu tipo definido, assim como ao declarar qualquer outra variável:
foreach (string cor in cores)
{
Console.WriteLine(cor);
}
O laço foreach será usado extensivamente no próximo material de preparação que aborda listas.
Números Aleatórios (Random Numbers)
Além disso, para esta tarefa você precisará obter um número aleatório do computador. Em C#, isso é feito criando uma instância da classe Random e, em seguida, usando-a para obter o próximo inteiro em um intervalo específico.
Random geradorAleatorio = new Random();
int numero = geradorAleatorio.Next(1, 11);
Instruções da Tarefa
Para esta tarefa, você concluirá outra tarefa que fez anteriormente em CSE 110 mas, neste caso, escreva o programa em C#:
Especificação do Programa
Aqui estão as instruções que você viu anteriormente em CSE 110 que usaremos como especificação do nosso programa:
Visão Geral
No jogo de Adivinhação do Número, o computador escolhe um número mágico e então o usuário tenta adivinhá-lo. Após cada palpite, o computador diz ao usuário para digitar um número “maior” ou “menor” até adivinhar o número mágico.
Esta tarefa é um pouco desafiadora porque reúne muitos dos conceitos que você aprendeu neste curso, incluindo laços e instruções if.
Requisitos Básicos
Desenvolva estes requisitos básicos passo a passo para concluir o programa. Por favor, não pule nada e faça tudo de uma vez, porque muitas pessoas se beneficiam ao ver o programa sendo desenvolvido passo a passo.
Comece pedindo ao usuário o número mágico. Em etapas futuras, mudaremos isso para que o computador gere um número aleatório, mas, para começar, deixaremos o usuário decidir qual é o número.
Peça um palpite ao usuário.
Usando uma instrução if, determine se o usuário precisa digitar um número maior ou menor na próxima vez ou diga se ele adivinhou.
Neste ponto, você não terá nenhum loop.
Veja abaixo o resultado esperado neste ponto:
Qual é o número mágico? 6 Qual é o seu palpite? 4 Mais altoQual é o número mágico? 6 Qual é o seu palpite? 7 Mais baixoQual é o número mágico? 6 Qual é o seu palpite? 6 Você adivinhou!Adicione um loop que continue em execução enquanto o palpite não corresponder ao número mágico.
Neste ponto, o usuário deve poder continuar jogando até obter a resposta correta.
Veja abaixo o resultado esperado neste ponto:
Qual é o número mágico? 18 Qual é o seu palpite? 5 Mais alto Qual é o seu palpite? 6 Mais alto Qual é o seu palpite? 7 Mais alto Qual é o seu palpite? 20 Mais baixo Qual é o seu palpite? 19 Mais baixo Qual é o seu palpite? 18 Você adivinhou!Em vez de fazer com que o usuário forneça o número mágico, gere um número aleatório de 1 a 100.
Inicie o jogo e certifique-se de que funciona!
Desafio Adicional
Acompanhe quantos palpites o usuário deu e informe-o no final do jogo.
Após o término do jogo, pergunte ao usuário se ele deseja jogar de novo. Se responder sim, volte e inicie o jogo inteiro novamente e continue esse loop enquanto o jogador continuar dizendo “
sim”.
Crie e teste o programa
- Crie e teste o programa conforme descrito acima.
- Você deve concluir os 3 Requisitos Básicos.
- Os desafios adicionais são opcionais.
- Certifique-se de usar o mesmo modelo de projeto que você usou para as atividades anteriores. No entanto, desta
vez, você deve adicionar seu código no arquivo
Program.csno projetoExercicio3.
Exemplo de Solução
Quando terminar seu programa, veja o exemplo de solução para compará-la com a sua:
Obtendo Ajuda
Se você tiver dúvidas, por favor, pergunte no Microsoft Teams.
Enviando
Retorne ao Canvas e responda ao questionário correspondente.