Olá Pessoal, Como fazer Laço de repetição em C# dos tipos For – Foreach – While?
Se você não sabe ou tinha dúvida, vamos aprender hoje!
Os laços de repetição estão presentes desde as primeiras linguagens e até hoje são extremamente utilizados, basicamente o laço repete um bloco de instruções até que uma condição seja satisfeita.
Vamos lá:
A simulação de código foi feito em um projeto Windows Application.
Laço FOR
for (int i = 0; i <= 10; i++) { MessageBox.Show("6 x " + i.ToString() + " = " + (i * 6).ToString()); }
Leitura:
Para i (inteiro) igual a 0 até i menor igual a 10 acrescente i+1
Simples né?
Podemos fazer um For inverso, onde ele começa de um maior e regride:
for (int i = 11 - 1; i >= 0; i--) { MessageBox.Show("6 x " + i.ToString() + " = " + (i * 6).ToString()); }
Esse tipo de For é útil quando temos um Array de valores onde sabemos o tamanho total dele.
Laço FOR EACH
foreach (Control item in this.Controls) { MessageBox.Show(item.Name); }
Funciona um pouco diferente, é muito utilizado para varrer tipos de objetos que estão contidos em uma coleção (array de objetos).
Por ex, neste código foi criado um item do tipo Control (controle de formulário tipo button, label). Esse item a cada laço do ForEach recebe um elemento da coleção de todos os controles do formulário.
Laço WHILE
int div = 1000; while (div != 3) { div = div / 2; MessageBox.Show("valor de número é: " + div.ToString()); }
Leitura:
Enquanto (condição esperada não ocorre) faça:
Em determinado momento a variável div sendo dividida por 2 vai ser igual a 3 e satisfará a condição do While, enquanto isso não ocorrer o laço continuará em Loop.
PS – Cuidado com o laço While, cometer um erro que resulta em loop infinito é fácil, nesse caso basta alterar para while (div != 2) e teremos um loop infinito 😉
Laço DO WHILE
int num = 10; do { num += 5; MessageBox.Show("valor de número é: " + num.ToString()); } while (num > 100);
É a mesma ideia do primeiro While, o que muda é que no primeiro a condição é testada no começo do laço e no Do While, é testada no final do laço. Isso é importante dependendo do que precisar fazer.
Essas são as estruturas de laço de repetição que temos no C#, procure memorizar e entender para qual cenário cada um é mais adequado.
Logo mais abordarei Expressões Lambda, que em determinados momentos podem substituir o uso de um ForEach.
Utilizem os comentários para tirar dúvidas.
Até a próxima.
Adorei sua explicação sobre laços, ficou bem simples e as comparações foram boas para se perceber diferenças entre ambas, agora que se tem a teoria é pôr em prática. Parabéns pelo trabalho !
Obrigado Reinaldo,
Que bom que consegui lhe ajudar!
Precisando de algo é só chamar.
Abraços.
me ajudou tambem kk tenho prova hj e tava procurando uma explicaçao mais clara, gostei de fazer uma leitura do codigo explicando passo a passo, vlw!
Legal Vinícius!
Obrigado pelo feedback !
Abraços.
obrigado isso vai me ajudar a entender melhor ,obrigado mesmo!!
ass Adriano
Olá Adriano!
Obrigado! Boa sorte!
Excelente artigo, venho acompanhando estes artigos de C# e estão me ajudando muito, parabéns
Ótima explicação, simples e clara.
Gostaria de saber se no “foreach” tem como escolher se ASC ou DESC como é possível no “for” utilizando “i++” ou “i–“.
Grato pelo tempo e dedicação!
Prezado EDUARDO , gostei muito das suas aulas sobre C sharp. Parou porque?
olá Eduardo, posso te dar uma dica ? no laço foreach acho que pra explicação ficar mais clara você podia ter colocado já também o vetor que é usado, ex:
string [] nomes = new string[] {“raphael”, “victoria”,”etc”};
foreach (string nome in nomes)
{
Console.WriteLine(nome);
}
pois assim creio que ficaria mais simples o entendimento.
Top! Vou indicar este tutorial para meus alunos e colegas! 🙂
Obrigada, Eduardo.