Buscar

pROGRAMAÇÃO c sHARP

Prévia do material em texto

MÓDULO III 
CSHARP 
 
 
 
2 Módulo III: C# 
26 de janeiro de 2011 
Conteúdo 
Bem-vindo ao C# ........................................................................................................................... 4 
Conceitos iniciais ........................................................................................................................... 5 
Programação Orientada a Eventos ........................................................................................... 5 
Definição ............................................................................................................................... 5 
Classes e Objetos ....................................................................................................................... 5 
Definição ............................................................................................................................... 5 
Propriedades, Métodos e Eventos ............................................................................................ 6 
Propriedades ......................................................................................................................... 6 
Métodos ................................................................................................................................ 6 
Eventos .................................................................................................................................. 6 
Namespaces .............................................................................................................................. 6 
Definição ............................................................................................................................... 6 
Namespaces da Framework .Net .......................................................................................... 6 
Namespaces definidos pelo usuário ..................................................................................... 7 
Programando em C#...................................................................................................................... 7 
Trabalhando com Variáveis ....................................................................................................... 7 
Nomeando Variáveis ............................................................................................................. 7 
Declarando Variáveis ............................................................................................................. 7 
Variáveis não atribuídas ........................................................................................................ 8 
Tipos de Dados Primitivos ..................................................................................................... 8 
Usando instruções de decisão ................................................................................................... 8 
Usando operadores Booleanos ............................................................................................. 8 
Tome a decisão! .................................................................................................................... 9 
Somente expressões booleanas, por favor ........................................................................... 9 
Instruções if em cascata ........................................................................................................ 9 
Usando a instrução switch .................................................................................................. 10 
Usando instruções de Iteração .................................................................................................... 12 
While ....................................................................................................................................... 12 
For ........................................................................................................................................... 12 
Entendendo o escopo da instrução for ............................................................................... 14 
As instruções break e continue ........................................................................................... 14 
 
 
 
 
3 Módulo III: C#8 
MXM Sistemas e Serviços de Informática | 2011 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4 Módulo III: C# 
26 de janeiro de 2011 
Bem-vindo ao C# 
A Microsoft desenvolveu a linguagem C# em conjunto com a arquitetura .net, sendo assim 
uma linguagem de programação especialmente desenvolvida para esta plataforma. Todos 
sabemos que a plataforma .net suporta uma gama de linguagens como o C# (como dito), 
VB.Net, J#, C++, Delphi for .Net entre outras, o que torna essa arquitetura produtiva e 
independente de linguagem. Isso quer dizer que o desenvolvedor pode escolher a linguagem 
que mais lhe agrada. Esta liberdade de escolha da linguagem de programação aumenta 
também a produtividade de um time de desenvolvimento, pois enquanto parte dos 
desenvolvedores estão construindo a interface gráfica em VB.Net outro grupo pode estar 
desenvolvendo as classes de negócio em C#, por exemplo. Depois, é só integrar as duas partes 
do projeto. 
Entre tantas linguagens suportadas pelo .net porque, então, escolher o C#? O C# sofre 
influência de várias linguagens; mais notadamente do Delphi, C++ e Java. A linguagem C#, na 
verdade, é a reunião das principais vantagens dessas linguagens, corrigindo seus defeitos e/ou 
limitações e acrescentando alguns outros recursos, o que faz do C# uma linguagem muito 
poderosa e atrativa aos desenvolvedores que desejam migrar para a plataforma Microsoft 
.net, pois é fácil de assimilar pelos novatos no mundo do desenvolvimento de softwares e 
proporciona uma baixa curva de aprendizagem para os mais experientes. É comum escutarmos 
falar que o C# é tão poderoso quanto C++ e tão organizada, flexível e fácil de programar 
quanto o Delphi. 
Vejamos então algumas das características do C#: 
• Como já dito, C# foi criado do zero para funcionar especialmente na 
plataforma .net, sem a necessidade de compatibilidade com código já existente; 
• A maior parte das classes do .Net Framework foram desenvolvidos em C#; 
• Primeira linguagem “orientada à componentes” da família C/C++; 
• Segue os padrões de POO, onde tudo deriva de um ancestral comum 
(System.Object); 
• A linguagem é fortemente tipada, o que ajuda a evitar erros oriundos de uma 
manipulação imprópria de tipo e/ou atribuições; 
• Suporte à COM, COM+ e outras DLLs escritas por linguagens que geram código 
não-gerenciado; 
• É case-sensitive; 
• Os programas escritos em C# rodam sob um ambiente gerenciável, o que 
significa que todo o controle de memória é feito pelo .Net Framework e não 
diretamente pelo programador, reduzindo assim falhas na programação enquanto à 
alocação e liberação de um objeto na memória. 
 
 
5 Módulo III: C#8 
MXM Sistemas e Serviços de Informática | 2011 
 
Conceitos iniciais 
Programação Orientada a Eventos 
Quando você cria um Windows Form ou Web Application no Visual Studio, você está criando 
uma aplicação orientada a eventos. Aplicações orientada a eventos executam códigos em 
resposta a um evento. Cada formulário e/ou controle que você cria expõe uma quantidade 
pré-definida de eventos. Quando um destes eventos ocorre, e há código associado a ele, este 
código é invocado. 
Definição 
Blocos de código em uma aplicação orientada a eventos são executados apenas quando um 
evento específico é disparado, chamando o bloco associado a este evento. Eventos podem ser 
disparados através do teclado, entrada de dados, ações do mouse,pelo sistema operacional 
ou mesmo por outro bloco de código dentro da aplicação. 
Classes e Objetos 
Uma classe é o tipo definido pelo usuário mais básico do C#. Quando você cria uma classe, 
você organiza informações em comum dentro de uma mesma entidade. Você deve criar uma 
classe antes de criar um objeto. 
Definição 
Uma classe define as características de um objeto. Enquanto as propriedades da classe 
definem os atributos de um objeto, os métodos definem o comportamento deste. Estas 
características determinam como outros objetos poderão interagir com este objeto. 
Um objeto é a instância de uma classe. A classe é a definição de um item e o objeto é o item 
propriamente dito. 
Características de uma classe 
• Uma classe define as características de um objeto; 
• Estas características determinam como o objeto deverá interagir com outros 
objetos; 
• Uma classe na Framework .Net é um tipo personalizado que pode incluir tipos 
de valor, tipos de referência, atributos, métodos e propriedades. 
Características de um objeto 
• O objeto é a instância de uma classe; 
• O objeto é criado quando a aplicação é executada; 
• Quando você cria um objeto, você está criando um novo tipo de referência; 
• No C#, tudo se comporta como um objeto; 
• Cada objeto ocupa seu próprio espaço na memória e executa 
independentemente de todas as outras instâncias daquele objeto. 
 
 
6 Módulo III: C# 
26 de janeiro de 2011 
 
Propriedades, Métodos e Eventos 
Basicamente, métodos representam as ações e propriedades representam os atributos de um 
objeto. 
Propriedades 
As propriedades descrevem as características de um objeto. Por exemplo, as propriedades de 
um balão incluem suas características “visíveis” como sua altura, diâmetro e cor. Outras 
características descrevem seu estado (como inflado; ou não) ou, ainda, atributos que não são 
visíveis como sua data de fabricação. Todos os balões possuem estes atributos, embora o valor 
destes atributos sejam diferentes para cada balão. 
Métodos 
Métodos são as ações que um objeto pode executar. Por exemplo, um balão tem a capacidade 
de inflar, desinflar ou subir. Todos os balões são capazes de executar estas ações. 
Eventos 
Um evento é uma ocorrência na qual podemos responder programaticamente. Por exemplo, o 
balão pode responder ao evento de ser preenchido com gás hélio. 
Ações de usuário podem gerar eventos, como um clique do mouse ou pressionar um botão no 
teclado. Ainda, é possível gerar eventos diretamente pelo código. Os casos mais comuns do 
uso de eventos na Framework .Net são o de resposta a uma atividade na interface do usuário. 
Namespaces 
Utilizamos namespaces para a organização de classes dentro de uma hierarquia lógica. 
Namespaces funcionam tanto como uma organização interna da sua aplicação quanto uma 
organização externa, a fim de evitar conflitos entre nomes de classe entre a sua aplicação e 
outra aplicação. 
Definição 
A biblioteca de classes da Framework .Net é composta por namespaces. Cada namespace 
contém tipos que podem ser utilizados na sua aplicação: classes, estruturas, enumerações, 
delegates, interfaces, etc. Porque diferentes classes podem possuir o mesmo nome, devemos 
organizar nossas classes dentro de uma hierarquia de namespaces. 
Namespaces da Framework .Net 
A Framework .Net é formada por vários namespaces; a mais importante delas é a System. O 
namespace System contém as classes que a maioria das aplicações utiliza para interagir com o 
sistema operacional. Abaixo, existem alguns dos namespaces existente na Framework .Net 
através da System: 
• System.Windows.Form – Contém as classes úteis na construção de aplicações 
Windows Form; 
• System.IO – Contém classes para leitura e escrita de arquivos; 
• System.Data – Contém classes úteis para acesso à banco de dados; 
• System.Web – Contém classes úteis na construção de aplicações Web Forms. 
 
 
7 Módulo III: C#8 
MXM Sistemas e Serviços de Informática | 2011 
Namespaces definidos pelo usuário 
Os namespaces podem ser separados em duas categorias: “definidos pelo usuário” e 
“definidos pelo sistema”. Os namespaces “definidos pelo usuário” são os namespaces 
definidos em nosso código. É uma boa prática de desenvolvimento definirmos todas as nossas 
classes dentro de namespaces. O Visual Studio segue esta recomendação utilizando o nome do 
projeto como a raiz do namespace. 
Programando em C# 
Trabalhando com Variáveis 
Uma variável é um local de armazenamento que guarda um valor. Imagine uma variável como 
uma caixa que guarda uma informação temporária. Por exemplo, se você deseja armazenar o 
valor do custo de um item em uma loja, deve criar uma variável –que podemos chamar de 
custo- e armazenar o custo do item nesta variável. Mais tarde, se você referenciar a variável 
custo, o valor recuperado será o custo do item que você colocou lá anteriormente. 
Nomeando Variáveis 
Adote uma convenção de nomes que ajude a evitar confusão em relação às variáveis que você 
definir. Abaixo, algumas recomendações gerais (lembre-se: são apenas recomendações): 
• Não use sublinhados; 
• Não crie identificadores cuja única diferença seja entre maiúsculas e minúsculas. Por 
exemplo, não crie uma variável denominada myVariable e outra denominada 
MyVariable para serem usadas ao mesmo tempo, porque será muito fácil confundi-las; 
• Comece o nome com uma letra minúscula; 
• Em um identificador de várias palavras, comece a segunda palavra e as palavras 
subseqüentes com uma letra maiúscula (isto é denominado “notação camelCase”); 
• Não use notação húngara (se você não sabe o que é isto, não se preocupe!); 
Declarando Variáveis 
Lembre-se de que variáveis são como caixas na memória que podem armazenar um valor. O 
C# tem muitos tipos diferentes de valores que pode armazenar e processar –inteiros, números 
com ponto flutuante e sequência de caracteres, para nomear apenas três. Quando você 
declara uma variável, deve especificar que tipo de dados ela armazenará. 
Você declara o tipo e o nome da variável em uma instrução de declaração. Por exemplo, a 
instrução a seguir declara que a variável denominada age armazena valores int (inteiro). A 
instrução deve ser terminada com um ponto-e-vírgula. 
int age; 
O tipo de variável int é o nome de um dos tipos primitivos do C# -inteiro que é um número 
inteiro. Após ter declarado sua variável, você pode lhe atribuir um valor. A instrução abaixo 
atribui o valor 42 à variável age. Novamente, você verá que ponto-e-vírgula são necessários. 
age = 42; 
 
 
8 Módulo III: C# 
26 de janeiro de 2011 
O sinal de igual (=) é o operador de atribuição, que atribui o valor à sua direita à variável à 
esquerda. Feito isso, a variável age pode ser usada no seu código para referenciar o valor que 
ela armazena. A próxima instrução escreve o valor da variável age, 42, no console: 
Console.WriteLine(age); 
Variáveis não atribuídas 
Quando você declara uma variável, ela contém um valor aleatório até que lhe seja atribuída 
um valor. O C# não permite que você uma variável não atribuída. É necessário atribuir um 
valor a uma variável antes que você possa usá-la, do contrário seu programa não compilará. 
Essa exigência é denominada Regra de atribuição definitiva. Por exemplo, a instrução a seguir 
gerará um erro de tempo de compilação porque a variável age não possui valor atribuído. 
int age; 
Console.WriteLine(age); //erro de tempo de compilação 
Tipos de Dados Primitivos 
O C# tem vários tipos embutidos denominados tipos de dados primitivos. Abaixo, a lista dos 
tipos primitivos mais utilizados no C#: 
• int - números inteiros; 
• long – números inteiros (com um intervalo maior); 
• float – números de ponto flutuante;• double – números de ponto flutuante com precisão dupla; 
• decimal – valores monetários; 
• string – sequência de caracteres; 
• char – caracter único; 
• bool – valores lógicos (verdadeiro ou falso). 
Usando instruções de decisão 
No mundo da programação tudo é preto ou branco, certo ou errado, verdadeiro ou falso. Por 
exemplo, se você criar uma variável inteira denominada x, atribuir o valor 99 a x e, em seguida, 
perguntar: “a variável x contém o valor 99?”, a resposta será verdadeiro. Se você perguntar: “a 
variável x é menor que 10?”, a resposta será falso. Esses são exemplos de expressões 
booleanas. Uma expressão booleana sempre avalia como verdadeiro ou falso. 
O C# fornece um tipo de dados denominado bool. Uma variável bool pode armazenar um dos 
dois valores: true ou false. Por exemplo, as três instruções a seguir declaram uma variável bool 
denominada areYouReady, atribui o valor true à variável e, em seguida, escreve seu valor no 
console: 
bool areYouReady; 
areYouReady = true; 
Console.WriteLine(areYouReady); //escreve True 
Usando operadores Booleanos 
Um operador booleano é um operador cujo resultado é verdadeiro ou falso. O C# tem vários 
operadores booleanos muito úteis, sendo o mais simples deles o operador NOT, que é 
 
 
9 Módulo III: C#8 
MXM Sistemas e Serviços de Informática | 2011 
representado pelo símbolo do ponto de exclamação (!). O operador ! nega um valor booleano, 
produzindo o oposto desse valor. No exemplo anterior, se o valor da variável areYouReady for 
true, o valor da expressão !areYouReady é false. 
Abaixo, uma lista dos operadores booleanos: 
• == (igual a); 
• != (diferente de); 
• < (menor que); 
• <= (menor ou igual que); 
• > (maior que); 
• >= (maior ou igual que); 
• && (operador lógico AND); 
• || (operador lógico OR) 
Tome a decisão! 
Use uma instrução if quando quiser escolher entre executar dois blocos diferentes de código 
dependendo do resultado de uma expressão booleana. 
A sintaxe de uma instrução if é a seguinte: 
if (expressaoBooleana) 
{ 
 statement -1; 
} 
else 
{ 
 statement – 2; 
} 
Se a expressão expressaoBooleana for avaliada como true, então a instrução statement-1 será 
executada; caso contrário, a expressão expressaoBooleana é false e a instrução statement-2 é 
executada. A palavra-chave else e a instrução statment-2 são opcionais. Se não houver uma 
cláusula else, nada acontecerá quando a expressão expressaoBooleana for false. 
Somente expressões booleanas, por favor 
A expressão em uma instrução if deve estar entre parênteses. Além disto, ela deve ser uma 
expressão booleana. Em algumas outras linguagens, você pode escrever uma expressão do 
tipo inteiro e o compilador silenciosamente converterá o valor inteiro em true ou false. O C# 
não suporta esse tipo de comportamento e o compilador reporta um erro se você escrever 
uma expressão desse tipo. 
Instruções if em cascata 
Você pode aninhar as instruções if dentro de outras instruções if. Dessa maneira, você pode 
encadear uma sequência de expressões booleanas, que são testadas uma após a outra até que 
uma delas seja avaliada como true. No exemplo a seguir, se o valor de day for 0, o primeiro 
teste será avaliado como true e dayName será atribuído a Sunday. Se o valor de day não for 0, 
o primeiro teste falhará e o controle passará para a cláusula else, que executará a segunda 
 
 
10 Módulo III: C# 
26 de janeiro de 2011 
instrução if e comparará o valor de day com 1. A segunda instrução if só é avaliada se o 
primeiro teste for false. Da mesma maneira, a terceira instrução if só será avaliada se o 
primeiro e o segundo teste forem false. 
if (day == 0) 
 dayName = “Sunday”; 
else if (day == 1) 
 dayName = “Monday”; 
else if (day == 2) 
 dayName = “Tuesday”; 
else if (day == 3) 
 dayName = “Wednesday”; 
else if (day == 4) 
 dayName = “Thursday”; 
else if (day == 5) 
 dayName = “Friday”; 
else if (day == 6) 
 dayName = “Saturday”; 
else 
 dayName = “unknow”; 
Usando a instrução switch 
Algumas vezes, quando você escreve uma instrução if em cascata, todas elas parecem muito 
similares, porque todas avaliam uma expressão idêntica. A única diferença é que cada if 
compara o resultado da expressão com um valor diferente. 
Nessas situações, você frequentemente pode reescrever a instrução if em cascata como uma 
instrução switch para tornar seu programa mais eficiente e legível. 
A sintaxe da instrução switch é a seguinte: 
switch (expressaoControle) 
{ 
 case expressaoConstante: 
 statements; 
 break; 
 case expressaoConstante: 
 statements; 
 break; 
 ... 
 default: 
 statements; 
 break; 
} 
expressaoControle é avaliado uma vez e as instruções abaixo de case, cujo valor 
expressaoConstante é igual ao resultado de expressaoControle, são executadas até a instrução 
break. A instrução switch, então, termina e o programa continua na primeira instrução após a 
chave de fechamento da instrução switch. 
 
 
11 Módulo III: C#8 
MXM Sistemas e Serviços de Informática | 2011 
Se nenhum dos valores de expressaoConstante for igual ao valor de expressaoControle, as 
instruções abaixo do rótulo default opcional são executadas. 
Por exemplo, podemos escrever a instrução if em cascata anterior como a instrução switch a 
seguir: 
switch(day) 
{ 
 case 0: 
 dayName = “Sunday”; 
 break; 
 case 1: 
 dayName = “Monday”; 
 break; 
 case 2: 
 dayName = “Tuesday”; 
 break; 
 ... 
 default: 
 dayName = “Unknow”; 
 break; 
} 
A instrução switch é muito útil, mas, infelizmente, você nem sempre poderá utilizá-la como 
gostaria. Todas as instruções switch devem seguir as seguintes regras: 
• A instrução switch só pode ser utilizada em tipos de dados primitivos, como int ou 
string. Como qualquer outro tipo, você terá de usar uma instrução if; 
• Os rótulos case devem ser expressões constantes, como 42 ou “42”. Se for necessário 
calcular valores do rótulo case em tempo de execução, use uma instrução if; 
• Os rótulos case devem ser expressões únicas. Em outras palavras, dois rótulos case 
não podem ter o mesmo valor. 
Você pode especificar que deseja executar as mesmas instruções para mais de um valor 
fornecendo uma lista de rótulos case sem nenhuma instrução interveniente; nesse caso, o 
código para o rótulo final da lista é executado para todas as instruções case. Entretanto, se um 
rótulo tiver uma ou mais instruções associadas, a execução não poderá prosseguir para os 
rótulos subseqüentes e o compilador gerará um erro. Por exemplo: 
switch(trumps) 
{ 
 case Hearts: 
 case Diamonds: //Permitido – nenhum código entre os rótulos 
 color = “Red”; //Código executado para Hearts e Diamonds 
 break; 
 case Clubs: 
 color: “Black”; 
 case Spades: //Erro – código entre rótulos 
 color: “Black”; 
 break; 
} 
 
 
12 Módulo III: C# 
26 de janeiro de 2011 
Usando instruções de Iteração 
While 
Você usa uma instrução while para executar repetidamente uma instrução enquanto uma 
expressão booleana for verdadeira. A sintaxe de uma instrução while é: 
While (expressaoBooleana) 
{ 
 statement 
} 
A expressão booleana é avaliada e, se for verdadeira, a instrução (statement) é executada e a 
expressão booleana é avaliada novamente. Se a expressão ainda for verdadeira, a instrução é 
repetida e a expressão avaliada mais uma vez. Este processo continua até que a expressão 
booleana seja avaliada como falsa, quando a execução sai da instrução while; a execução, 
então, continua na primeira instrução após a instrução while. Uma instrução while compartilha 
muitas semelhanças semânticas com uma instruçãoif (na verdade, a sintaxe é idêntica exceto 
pela palavra-chave): 
• A expressão deve ser uma expressão booleana; 
• A expressão booleana deve ser escrita entre parênteses; 
• Se a expressão booleana for avaliada como falsa na primeira avaliação, a instrução não 
será executada; 
Abaixo, uma instrução while que escreve os valores de 0 a 9 no console: 
 
int i = 0; 
while (i != 10) 
{ 
 Console.WriteLine(i); 
 i++; 
} 
Todas as instruções while devem terminar em algum ponto. Um erro comum do iniciante é 
esquecer de incluir uma instrução que faça a expressão booleana ser avaliada como falsa e 
terminar o loop. No exemplo, a instrução i++ executa esta função. 
For 
A maioria das instruções while tem a seguinte estrutura geral: 
inicialização 
while (expressaoBooleana) 
{ 
 statement; 
 atualizar variável de controle; 
} 
Uma instrução for permite que você escreva uma versão mais formal deste tipo de construção 
combinando a inicialização, a expressão booleana e a atualização. Você achará a instrução for 
 
 
13 Módulo III: C#8 
MXM Sistemas e Serviços de Informática | 2011 
útil porque é muito mais difícil de esquecer qualquer uma de suas três partes. Abaixo, a 
sintaxe da instrução for: 
 
for (inicialização; expressaoBooleana; variavelControle) 
{ 
 statement; 
} 
 
O loop while mostrado anteriormente, que exibe os números inteiros de 0 a 9, pode ser 
reconstruído como o loop for a seguir: 
 
for (int i = 0; i != 10; i++) 
{ 
Console.WriteLine(i); 
} 
 
A inicialização ocorre uma vez no início do loop. Se a expressão booleana for avaliada como 
verdadeira, a instrução é executada. A variável de controle é atualizada e a expressão 
booleana é reavaliada. Se a condição ainda for verdadeira, a instrução é executada 
novamente, a variável de controle é atualizada, a expressão booleana é avaliada mais uma vez 
e assim por diante. 
Observe que a inicialização ocorre apenas uma vez e que a instrução no corpo do loop sempre 
é executada antes que a atualização ocorra e que a atualização ocorre antes da expressão 
booleana ser avaliada. 
Você pode omitir qualquer uma das três partes de uma instrução for. Se você omitir a 
expressão booleana, ela será predeterminada como verdadeira. A instrução for a seguir é 
executada continuamente: 
 
for (int i = 0; ; i++) 
{ 
 Console.WriteLine(“alguém me pare!”); 
} 
Se você omitir as partes da inicialização e atualização, terá um loop while escrito de forma 
estranha: 
 
int i = 0; 
for (; i != 10;) 
{ 
Console.WriteLine(i); 
i++; 
} 
Ainda, é possível fornecer várias inicializações e várias atualizações em um loop for (você só 
pode ter uma expressão booleana). Para conseguir isso, separe as várias inicializações e 
atualizações por vírgula, como mostrado no exemplo a seguir: 
 
 
 
 
14 Módulo III: C# 
26 de janeiro de 2011 
for (int i = 0, j = 10; i <= j; i++, j--) 
{ 
 ... 
} 
Entendendo o escopo da instrução for 
Você talvez tenha observado que pode declarar uma variável na parte da inicialização de uma 
instrução for. Essa variável tem o escopo definido para o corpo da instrução for e desaparece 
quando a instrução for termina. Essa regra tem duas consequencias importantes. Em primeiro 
lugar, você não pode usar essa variável após a instrução for ter terminado, porque ela não 
pertencerá mais ao escopo. 
Segundo, você pode escrever duas ou mais instruções for próximas entre si que usam o 
mesmo nome de variável, porque cada variável está em um escopo diferente. 
As instruções break e continue 
Você já viu a instrução break sendo utilizada para sair de uma instrução switch. Você também 
pode usar uma instrução break para sair do corpo de uma instrução de iteração. Quando você 
sai de um loop, ele pára imediatamente e a execução continua na primeira instrução após o 
loop. Nem a atualização nem a condição de continuação do loop são reexecutadas. 
Por outro lado, a instrução continue faz com que o programa execute imediatamente a 
próxima iteração do loop (após a reavaliação da expressão booleana). 
Muitas diretrizes de programação recomendam o uso cauteloso da instrução continue ou 
simplesmente não utilizá-la, porque ela está frequentemente associada a um código difícil de 
entender. O comportamento do continue é também muito sutil. Por exemplo, se você executar 
uma instrução continue de dentro de uma instrução for, a parte da atualização será executada 
antes da execução da próxima iteração do loop.

Continue navegando