Você está na página 1de 4

08/01/2015

EstruturasderepetioC#eOrientaoaObjetos

APOSTILA C# E ORIENTAO A OBJETOS

CAPTULO 5

Estruturas de repetio
5.1 - REPETINDO UM BLOCO DE CDIGO
De volta ao exemplo da aula anterior, suponha agora que o cliente desse mesmo
banco queira saber quanto ele ganhar, ao final de 1 ano, caso ele invista um valor.
O investimento paga 1% do valor investido ao ms.
Por exemplo, se o cliente investir R$ 1000,00, ao final de 12 meses, ter por
volta de R$ 1126,82: no primeiro ms, R$ 1000,00 + R$1000,00 * 1% = R$ 1010,00;
no segundo ms, R$ 1010,00 + R$1010,00 * 1% = R$ 1020,10; e assim por diante. Ou
seja, para calcular o quanto ele ter ao final de um ano, podemos multiplicar o
valor investido 12 vezes por 1%.
Para resolvermos esse problema, precisamos fazer uso de uma estrutura de
controle que repete um determinado bloco de cdigo at que uma condio seja
satisfeita. Essa estrutura recebe o nome de loop.
Para fazer um loop no C#, utilizaremos, inicialmente, a instruo for. O for
uma instruo que possui trs partes:
A primeira parte a inicializao, na qual podemos declarar e inicializar uma
varivel que ser utilizada no for;
A segunda parte a condio do loop. Enquanto a condio do loop for
verdadeira, o loop continuar executando;
A terceira parte a atualizao, na qual podemos atualizar as variveis que so
utilizadas pelo for.
Cada uma das partes do for separada por um ;.
for(inicializao;condio;atualizao)
{
https://www.caelum.com.br/apostilacsharporientacaoobjetos/estruturasderepeticao/

1/6

08/01/2015

EstruturasderepetioC#eOrientaoaObjetos

//Essecdigoserexecutadoenquantoacondioforverdadeira
}

Veja o cdigo a seguir, por exemplo, em que usamos um for que repetir o
clculo 12 vezes:
doublevalorInvestido=1000.0;
for(inti=1;i<=12;i+=1)
{
valorInvestido=valorInvestido*1.01;
}
MessageBox.Show("Valorinvestidoagora"+valorInvestido);

Veja que nosso for comea inicializando a varivel i com 1 e repete o cdigo de
dentro dele enquanto o valor de i for menor ou igual a 12, ou seja, ele s para no
momento em que i for maior do que 12. E veja que, a cada iterao desse loop, o
valor de i cresce (i+=1). No fim, o cdigo de dentro do for ser repetido 12
vezes, como precisvamos.
O mesmo programa poderia ser escrito utilizando-se um while, em vez de um

for:
doublevalorInvestido=1000.0;
inti=1;
while(i<=12)
{
valorInvestido=valorInvestido*1.01;
i+=1;
}
MessageBox.Show("Valorinvestidoagora"+valorInvestido);

5.2 - PARA SABER MAIS DO WHILE


No C# quando utilizamos o while, a condio do loop checada antes de todas
as voltas (iteraes) do lao, mas e se quisssemos garantir que o corpo do lao
seja executado pelo menos uma vez? Nesse caso, podemos utilizar um outro tipo
de lao do V# que o dowhile:
do
{
//corpodoloop
}
while(condio);

Com o dowhile a condio do loop s checada no fim da volta, ou seja, o corpo


do loop executado e depois a condio checada, ento o corpo do do...while
sempre executado pelo menos uma vez.
https://www.caelum.com.br/apostilacsharporientacaoobjetos/estruturasderepeticao/

2/6

08/01/2015

EstruturasderepetioC#eOrientaoaObjetos

Agora a melhor hora de aprender algo novo


Se voc gosta de estudar essa apostila aberta da Caelum,
certamente vai gostar dos novos cursos online que
lanamos na plataforma Alura. Voc estuda a qualquer
momento com a qualidade Caelum.
Conhea a Alura.

5.3 - PARA SABER MAIS INCREMENTO E DECREMENTO


Quando queremos incrementar o valor de uma varivel inteira em uma unidade,
vimos que temos 2 opes:
intvalor=1;
valor=valor+1;
//ou
valor+=1;

Porm, como incrementar o valor de uma varivel uma atividade comum na


programao, o C# nos oferece o operador ++ para realizar esse trabalho:
intvalor=1;
valor++;

Temos ainda o operador que realiza o decremento de uma varivel.

5.4 - EXERCCIOS
1. Qual o valor exibido no seguinte cdigo:
inttotal=2;
for(inti=0;i<5;i+=1)
{
total=total*2;
}
MessageBox.Show("Ototal:"+total);

256
64
128
https://www.caelum.com.br/apostilacsharporientacaoobjetos/estruturasderepeticao/

3/6

08/01/2015

EstruturasderepetioC#eOrientaoaObjetos

512
2. Faa um programa em C# que imprima a soma dos nmeros de 1 at 1000.
3. Faa um programa em C# que imprima todos os mltiplos de 3, entre 1 e 100.
Para saber se um nmero mltiplo de 3, voc pode fazer if(numero%3==0).
4. (Opcional) Escreva um programa em C# que some todos os nmeros de 1 a 100,
pulando os mltiplos de 3. O programa deve imprimir o resultado final em um
MessageBox.
Qual o resultado?
5. (Opcional) Escreva um programa em C# que imprime todos os nmeros que so
divisveis por 3 ou por 4 entre 0 e 30.
6. (Opcional) Faa um programa em C# que imprima os fatoriais de 1 a 10.
O fatorial de um nmero n n * n-1 * n-2 ... at n = 1.
O fatorial de 0 1
O fatorial de 1 (0!) * 1 = 1
O fatorial de 2 (1!) * 2 = 2
O fatorial de 3 (2!) * 3 = 6
O fatorial de 4 (3!) * 4 = 24
Faa um for que inicie uma varivel n (nmero) como 1 e fatorial (resultado) como
1 e varia n de 1 at 10:
intfatorial=1;
for(intn=1;n<=10;n++)
{

7. (Opcional) Faa um programa em C# que imprima os primeiros nmeros da


srie de Fibonacci at passar de 100. A srie de Fibonacci a seguinte: 0, 1, 1, 2, 3,
5, 8, 13, 21 etc... Para calcul-la, o primeiro elemento vale 0, o segundo vale 1, da
por diante, o n-simo elemento vale o (n-1)-simo elemento somado ao (n-2)simo elemento (ex: 8 = 5 + 3).

https://www.caelum.com.br/apostilacsharporientacaoobjetos/estruturasderepeticao/

4/6