LO
c#

Repetição While e Do

Por Lordfire, 28 de dez. de 2012 em C# e Visual Basic

4
1.6k
LordfireL
28 de dezembro de 2012 às 00:52

Repetição controlada por condição

O C# nos dá 2 opções de estruturas para repetição controlada por condição, isto é, a repetição ocorrerá de acordo com o estado de um teste cujo valor seja true ou false, que são o while e o do.

 

A diferença entre as duas é bastante simples: o while faz o teste antes de cada iteração, enquanto o do faz o teste depois da iteração. Vamos aos exemplos:

 

While

http://pastebin.com/5MCh6Vku

Neste caso, vou iniciar com uma variável x de valor 0 e, a cada iteração, escrever no console esta variável e incrementar seu valor em 1 (o x++ nos permite usar a variável e logo após incrementá-la). O resultado seriam 11 linhas, escritos os números de 0 a 10.

 

Do

http://pastebin.com/yB7ERcVM

Repare que a sintaxe é praticamente a mesma: o while vai para o final e adicionamos um "do" antes do bloco. O resultado será o mesmo, já que temos o mesmo teste e o mesmo bloco.

 

Mas ora, o While e o Do não são a mesma coisa? NÃO!

Se o teste fosse "while (x > 0)", por exemplo, o while nada mostraria, pois ao chegar no teste, x seria igual a 0 e, portanto, não seria maior que 0. Já no caso do do, o bloco seria executado infinitamente, pois ao chegar no teste o x já seria igual a 1 (incremento no x++) e o loop se repetiria pra sempre. Uma simples mudança de linha e um resultado completamente contrário, hein?! Teste aí no seu compilador :D

fredpaduaF
28 de dezembro de 2012 às 01:39

Sabe se as estruturas do C# são parecidas com o C++ ?

Ou essa foi coecidencia?

LordfireL
28 de dezembro de 2012 às 14:08

Sabe se as estruturas do C# são parecidas com o C++ ?

Ou essa foi coecidencia?

O C# é muito baseado em C++ e Java, a maioria das estruturas vai ter sintaxes parecidas mesmo. Mas nem tudo é igual, nesse caso foi coincidência pois não conheço C++ :p

fredpaduaF
28 de dezembro de 2012 às 14:37

Hum, ok então..

Muito bom o tópico.

 

Seria legal mais topicos como esse,

acho que a área de programação é tão parada..

Só duvida de compilar source.. e olhe lá.