Linguagem C# - Estruturas de Repetição
Neste
segundo artigo veremos as estruturas de repetição, os denominados laços ou loop.
As estruturas de repetição são usadas para controlar a execução de códigos
repetidamente até que uma condição seja verdadeira. Falarei também um pouco dos
controles de fluxos como o: Break e o Continue.
Inicie um novo projeto do Visual Studio 2010 e crie uma aplicação “Windows Forms”. Trabalharemos também neste artigo com o controle ListBox para armazenar os dados obtidos das rotinas de repetições, para isto coloque 6 botões e um ListBox em nosso formulário encontrado na palheta “Common Controls”. Este componente é o mesmo utilizado no Delphi, tendo suas propriedades e métodos bem parecidos. A Imagem 01 ilustra a estrutura do formulário.
Inicie um novo projeto do Visual Studio 2010 e crie uma aplicação “Windows Forms”. Trabalharemos também neste artigo com o controle ListBox para armazenar os dados obtidos das rotinas de repetições, para isto coloque 6 botões e um ListBox em nosso formulário encontrado na palheta “Common Controls”. Este componente é o mesmo utilizado no Delphi, tendo suas propriedades e métodos bem parecidos. A Imagem 01 ilustra a estrutura do formulário.
Figura
01: Estrutura Inicial do Formulário.
Sendo
que cada botão é responsável por uma rotina, neste caso iremos mostrar o
resultado no ListBox ao Lado.
Utilizando o #Region
Antes
de iniciarmos nossa codificação darei uma dica interessante, o uso de um
recurso chamado “Region”. Para quem não sabe, o Microsoft Visual Studio
implementa este recurso para facilitar a vida de nós programadores. O mesmo
visa diminuir visualmente o código e deixá-lo agrupado por tipos de utilização.
Exemplo:
Códigos para Insersão, Exclusão, Alteração, etc...
No
caso específico deste artigo agruparemos por tipos de Estrutura de Repetição.
Sintaxe:
#region "Comando While"
<Bloco de Comandos>
<Bloco de Comandos>
#endregion
#region "Comando Do/While"
<Bloco de Comandos>
<Bloco de Comandos>
#endregion
Após
a implementação acima o Visual Studio insere um sinal de menos "-" ou
um de mais "+" para poder minimizar ou maximizar esta região do
código.
Os
blocos ficariam da seguinte maneira:
Comando While
O
comando While é geralmente utilizado quando não sabemos quantas vezes é
necessário repetir um bloco de comandos para que obtenhamos uma condição
verdadeira. Esta condição de retorno deve ser booleana.
Sintaxe:
while (teste
condicional)
{
//Comandos
}
Exemplo:
#region
While
private void button1_Click(object
sender, EventArgs e)
{
int numero = 1;
listBox1.Items.Clear();
listBox1.Items.Add("Comando While");
while (numero <= 20)
{
listBox1.Items.Add(numero.ToString());
numero += 1;
}
}
#endregion
Figura
02: Resultado do Comando While.
Comando
Do/While
O
Do/While tem quase a mesma funcionalidade do While, a única diferença é que com
o uso dele teremos os comandos executados ao menos uma única vez.
Sintaxe:
Do
{
//Comandos
} While(condição)
Exemplo:
#region
Do/While
private void button2_Click(object
sender, EventArgs e)
{
int numero = 20;
listBox1.Items.Clear();
listBox1.Items.Add("Comando Do/While");
do
{
listBox1.Items.Add(numero.ToString());
numero -= 1;
} while (numero >= 1);
}
#endregion
Figura 03: Resultado do Comando
Do/While.
A
diferença do Resultado dos comandos citados acima é que no segundo estamos
decrementando o valor. Notem que no
C# temos a facilidade para fazer esta
tarefa, sendo que:
“+=“
Incrementa um valor
“-=”
Decrementa um valor
Comando For
O
famoso comando “For” possui exatamente a mesma funcionalidade do comando While.
Ele trabalha checando uma condição para executar um bloco de comandos até que
esta condição seja verdadeira.
Sintaxe:
for (int i =0; i <= 20; i++)
{
//Comandos
}
A
primeira parte (int i= 0) temos uma
variável inteira inicializada com o valor 0, na segunda (i <= 20) uma condição para executar o bloco de comandos, neste
caso específico executaremos 20 vezes. O terceiro argumento (i++) indica o incremento automático
desta variável. Poderíamos também decremntar um valor (i--)
Exemplo:
#region For
private void button3_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
listBox1.Items.Add("Comando
For");
for (int i = 1 ; i <=20; i++)
{
listBox1.Items.Add(i.ToString());
}
}
#endregion
Figura
04: Resultado do Comando For.
Comando Foreach
Quando descobri este comando fiquei
surpreso com sua utilidade. O laço “Foreach” é utilizado quando desejamos
percorrer todos os elementos de um array ou de coleções de dados, como por
exemplo um ArrayList. Podemos também usar um “For” rodando enquanto uma
determinada variável for menor que a largura de um array (geralmente é usado a
propriedade Length).
O Laço Foreach é uma boa ideia quando se trata na leitura e apresentação dos dados, sendo de uma implementação muito rápida.
O Laço Foreach é uma boa ideia quando se trata na leitura e apresentação dos dados, sendo de uma implementação muito rápida.
Sintaxe:
foreach
(var item in collection)
{
//Comandos
}
O var pode ser do tipo int, float, string, etc... seria o tipo da variável. O item será o nome do elemento atual do array e collection o array a ser manipulado. Veja exemplo a seguir:
#region
Foreach
private void button4_Click(object
sender, EventArgs e)
{
ArrayList lista = new ArrayList();
for (int i = 1; i <= 20; i++)
{
lista.Add("Número_"+i.ToString());
}
foreach (var item in lista)
{
listBox1.Items.Add(item);
}
}
#endregion
Neste
exemplo, no primeiro momento utilizamos um tipo de variável “ArrayList” , sendo
necessário importar o seguinte namespace:
using System.Collections;
Foi criado
um “For” para alimentar nosso Array e logo em seguida um “Foreach” para
percorrê-lo e mostrar o resultado no Listbox. Ver Figura 05.
Figura 05: Resultado do Comando Foreach.
Controles de fluxo
Utilizamos dois controles de fluxo em estruturas de repetição: o Break e o Continue. O primeiro é utilizado para saída de laços e o segundo quando deverá mover a execução para a próxima iteração no laço.
Comando Break
Utilizamos dois controles de fluxo em estruturas de repetição: o Break e o Continue. O primeiro é utilizado para saída de laços e o segundo quando deverá mover a execução para a próxima iteração no laço.
Comando Break
Sintaxe:
for (int i = 1 ; i <=20; i++)
{
for (int i = 1 ; i <=20; i++)
{
//Comandos
If
(condição1 == condição2)
Break;
}
Ressalto que neste exemplo utilizei o Operador “For”, O Break pode ser usado tanto em While, Foreach, Do/While, vejamos o código a seguir.
Ressalto que neste exemplo utilizei o Operador “For”, O Break pode ser usado tanto em While, Foreach, Do/While, vejamos o código a seguir.
#region Break
private void button5_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
listBox1.Items.Add("Comando
Break");
for (int i = 1; i <= 20; i++)
{
listBox1.Items.Add(i.ToString());
if (i == 15)
{
break;
MessageBox.Show("Comando Break, nº" + i.ToString());
}
}
}
#endregion
No código criado anteriormente usei um “If” para verificar se o número de repetição é igual a 15 e logo em seguida interrompi o laço mostrando ao usuário uma mensagem, ou seja, interrompemos nosso laço e tudo o que vier após o comando Break. Ver Imagem 06.
No código criado anteriormente usei um “If” para verificar se o número de repetição é igual a 15 e logo em seguida interrompi o laço mostrando ao usuário uma mensagem, ou seja, interrompemos nosso laço e tudo o que vier após o comando Break. Ver Imagem 06.
Figura 06: Comando Break.
Comando Continue
Sintaxe:
for (int i = 1 ; i <=20; i++)
{
for (int i = 1 ; i <=20; i++)
{
//Comandos
If
(condição1 == condição2)
Continue;
//Comandos
}
Veja o exemplo a seguir:
#region Continue
Veja o exemplo a seguir:
#region Continue
private void button6_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
listBox1.Items.Add("Comando
Continue");
for (int i = 1; i <= 20; i++)
{
if ((i == 10) || (i == 11) ||
(i == 12))
continue;
listBox1.Items.Add(i.ToString());
}
}
#endregion
#endregion
No código utilizei um “If” para verificar se o número de repetição é igual a 10,11 ou 12, caso a condição seja verdadeira utilzei o continue. Notem que estes números não foram adicionados no Listbox pelo fato de pularmos e irmos para a próxima iteração do laço. Ver Imagem 07.
Figura
07: Comando Continue.
Conclusão
Pudemos aprender neste artigo as denominadas estruturas de repetição com exemplos práticos e fáceis. Continuaremos nossa caminhada no aprendizado desta linguagem de programação. Abraço e até o mês que vem!
Nenhum comentário:
Postar um comentário