Estrutura de repetição C#
A primeira estrutura de repetição que veremos aqui será o for, no for podemos executar uma parte do código repetidas vezes, de uma forma controlada, abaixo temos a estrutura do for:for(Inicialização;condição;passo){Nada melhor que um exemplo de código para começarmos a entender como funciona um for:
<codigo_a_ser_repetido>;
}
Explicando o que acontece na definição do loop for, primeiro usamos a palavra chave for que define o loop, dentro do parênteses temos 3 definições de código, na primeira parte, que no exemplo é:
for(int contador=0;condador<10;contador++){
<código_a_ser_repetido>
}
int contador=0;Estamos definindo uma variável, e isso é o que geralmente fazemos em um for, porém devemos nos atentar que aqui podemos definir qualquer código e ele será executado apenas uma vez antes de qualquer passo do loop. Lembre-se que se uma variável for definida aqui, como fizemos com o contador, ela só poderá ser usada no contexto do for, ou seja, entre o início { e o fim } do for, após ele ela não será válida.
Na próxima definição, que no exemplo foi definido por:
contador < 10;Temos uma condição booleana, esta parte do código será executada antes da execução de cada passo do loop, e ele o passo só será executado enquanto esta condição for verdadeira, quando ela for falsa o loop irá encerrar a execução.
Na última parte definida dentro do for, que foi definida por:
contador ++;Temos uma parte do código que será executada ao final de cada passo do loop.
Neste exemplo do for, definimos uma variável inteira que começará com o valor de 0, este loop será válido para todos os valores de contador menores que 0, e a cada passo vamos acrescentar 1 ao valor de contador. Com isso, neste exemplo quando executado o contador terá os valores:
0Lembre-se:
1
2
3
4
5
6
7
8
9
- Tanto a primeira, quanto a terceira parte do código dentro dos parênteses do for é opcional.
- A parte do código onde definimos a condicional é obrigatória.
- Não necessariamente devemos definir uma variável para o for, podemos usar uma que já existe.
- Podemos alterar a variável usando qualquer operação matemática, *, /, -, etc, e não necessariamente apenas o ++.
Ah, mas o for não é igual ao while?Ainda não vimos o while, mas tudo o que fazemos no for, conseguimos fazer no while, porém no for é muito mais fácil e compacto.
Uma outra pergunta recorrente é:
Na verdade a eficiência dos dois é bem parecida, cabe ao programador escolher quando usar um ou outro.Quem é mais eficiente o for ou o while?
Exercícios:
- Faça um programa que receba um inteiro e imprima o quadrado de cada número entre 1 e o número passado pelo usuário.
- Faça um programa que receba um inteiro e imprima todos os números pares entre 0 e ele.
- Faça um programa que receba um inteiro e calcule o Fatorial daquele inteiro. (O fatorial de um número é determinado pela multiplicação do número n e seus inferiores, por exemplo o fatorial de 5 é 5 * 4 * 3 * 2 * 1 = 120).
Apresentação
Exemplo de código de um do while para o programa de médias:
static void Main(string[] args)
{
double p1,p2,exame,media;
string continua="N";
Console.WriteLine("Olá, bem vindo ao program que calcula a média das matérias");
do
{
Console.WriteLine("Digite a sua nota da P1:");
p1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Digite a sua nota da P2:");
p2 = Convert.ToDouble(Console.ReadLine());
media = (p1 + p2) / 2;
if (media > 7)
{
Console.WriteLine("Parabéns, você foi aprovado com uma média {0}, deseja continuar (S/N)",media);
}
else if (media > 3)
{
Console.WriteLine("Digite a sua nota do Exame:");
exame = Convert.ToDouble(Console.ReadLine());
media = (media + exame) / 2;
if (media > 7)
{
Console.WriteLine("Parabéns, você foi aprovado com uma média {0}, deseja continuar (S/N)", media);
}
else
{
Console.WriteLine("Você foi reprovado com uma media {0}, deseja continuar (S/N)",media);
}
}
else
{
Console.WriteLine("Você foi reprovado com uma media {0}, deseja continuar (S/N)",media);
}
continua = Console.ReadLine();
Console.Clear();
} while (continua.ToUpper().Equals("S"));