Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Tutorial: Instruções e ciclos em C#
Este tutorial ensina como escrever código C# que examina variáveis e altera o caminho de execução com base nessas variáveis. Você escreve código C# e vê os resultados de compilá-lo e executá-lo. O tutorial contém uma série de lições que exploram construções de ramificação e looping em C#. Estas lições ensinam os fundamentos da linguagem C#.
Neste tutorial, você:
- Lançar um Codespace no GitHub com um ambiente de desenvolvimento C#.
- Explore
ifeelsedeclarações. - Utilize ciclos para repetir operações.
- Trabalha com ciclos aninhados.
- Combina ramos e laços.
Pré-requisitos
É necessário ter uma das seguintes opções:
- Uma conta GitHub para usar Codespaces GitHub. Se ainda não tiver uma, pode criar uma conta gratuita no GitHub.com.
- Um computador com as seguintes ferramentas instaladas:
Utilizar instruções if
Para iniciar um GitHub Codespace com o ambiente de tutorial, abra uma janela do navegador para o repositório tutorial codespace. Selecione o botão verde de Código e o separador Codespaces . Depois seleciona o + sinal para criar um novo Codespace usando este ambiente. Se completaste outros tutoriais desta série, podes abrir esse espaço de código em vez de criares um novo.
Quando o seu espaço de código carregar, crie um novo ficheiro na pasta tutoriais chamado branches-loops.cs.
Abra o seu novo ficheiro.
Digite ou copie o seguinte código para branches-loops.cs:
int a = 5; int b = 6; if (a + b > 10) Console.WriteLine("The answer is greater than 10.");Experimente este código escrevendo o seguinte comando no terminal integrado:
cd tutorials dotnet branches-loops.csDeverias ver a mensagem "A resposta é maior que 10." impressa na tua consola.
Modificar a declaração de
bpara que a soma seja inferior a 10:int b = 3;Escreve
dotnet branches-loops.csnovamente na janela do terminal.Como a resposta é inferior a 10, nada é impresso. A condição que você está a testar é falsa. Você não tem nenhum código para executar porque escreveu apenas uma das ramificações possíveis para uma instrução
if: a ramificação verdadeira.
Dica
À medida que exploras C# (ou qualquer linguagem de programação), podes cometer erros ao escrever código. O compilador encontra e reporta os erros. Observe atentamente a saída de erros e o código que gerou o erro. Também podes pedir ao Copilot para encontrar diferenças ou identificar erros. O erro do compilador pode normalmente ajudar-te a encontrar o problema.
Esta primeira amostra mostra a capacidade dos tipos if e booleanos. Uma booleana é uma variável que pode ter um de dois valores: true ou false. C# define um tipo especial, bool para variáveis booleanas. A instrução if verifica o valor de um bool. Quando o valor é true, a instrução seguinte ao if é executada. Caso contrário, é ignorado. Este processo de verificação de condições e execução de declarações com base nessas condições é poderoso. Vamos explorar mais.
Faça com que if e else funcionem juntos
Para executar código diferente nas ramificações true e false, crie uma ramificação else que é executada quando a condição é false. Experimenta um else ramo.
Adicione as duas últimas linhas no seguinte excerto de código (já deve ter as primeiras quatro):
int a = 5; int b = 3; if (a + b > 10) Console.WriteLine("The answer is greater than 10"); else Console.WriteLine("The answer is not greater than 10");A instrução que segue a palavra-chave
elseé executada somente quando a condição que está sendo testada éfalse. Combinarifeelsecom condições booleanas fornece toda a potência necessária para lidar tanto com umatruecomo com umafalsecondição.Importante
O recuo sob as
ifeelsedeclarações é para leitores humanos. A linguagem C# não trata o recuo ou o espaço em branco como sendo significativos. A instrução que segue a palavra-chaveifouelseé executada com base na condição. Todos os exemplos neste tutorial seguem uma prática comum para indentar linhas com base no fluxo de controle de declarações.Como a indentação não é significativa, precisas usar
{e}para indicar quando desejas que mais de uma instrução faça parte do bloco que se executa condicionalmente. Os programadores de C# usam normalmente colchetes em todas as cláusulasifeelse.O exemplo seguinte é igual ao que criaste no exemplo anterior, com a adição de
{e}. Modifique o seu código para corresponder ao seguinte código:int a = 5; int b = 3; if (a + b > 10) { Console.WriteLine("The answer is greater than 10"); } else { Console.WriteLine("The answer is not greater than 10"); }Dica
No restante deste tutorial, todos os exemplos de código incluem as chaves, seguindo as práticas aceitas.
Pode testar condições mais complicadas. Adicione o seguinte código após o que escreveu até agora:
int a = 5; int b = 3; int c = 4; if ((a + b + c > 10) && (a == b)) { Console.WriteLine("The answer is greater than 10"); Console.WriteLine("And the first number is equal to the second"); } else { Console.WriteLine("The answer is not greater than 10"); Console.WriteLine("Or the first number is not equal to the second"); }O símbolo
==testa a igualdade de . Ao usares==, distingues o teste de igualdade da atribuição, que já tinhas visto ema = 5.O
&&representa "e". Isso significa que ambas as condições devem ser verdadeiras para executar a instrução no ramo verdadeiro. Esses exemplos também mostram que pode ter várias declarações em cada ramificação condicional, desde que as inclua em{e}.Também podes usar
||para representar "ou". Adicione o seguinte código após o que escreveu até agora:if ((a + b + c > 10) || (a == b))Modifique os valores de
a,bece alterne entre&&e||para explorar. Você ganha mais compreensão de como os operadores de&&e||funcionam.Terminaste o primeiro passo. Antes de começares a próxima secção, vamos mover o código atual para um método separado. Isso torna mais fácil começar a trabalhar com um novo exemplo. Coloque o código existente num método chamado
ExploreIf(). Chama isso do início do teu programa. Quando terminares essas alterações, o teu código deverá parecer o seguinte:ExploreIf(); void ExploreIf() { int a = 5; int b = 3; if (a + b > 10) { Console.WriteLine("The answer is greater than 10"); } else { Console.WriteLine("The answer is not greater than 10"); } int c = 4; if ((a + b + c > 10) && (a > b)) { Console.WriteLine("The answer is greater than 10"); Console.WriteLine("And the first number is greater than the second"); } else { Console.WriteLine("The answer is not greater than 10"); Console.WriteLine("Or the first number is not greater than the second"); } if ((a + b + c > 10) || (a > b)) { Console.WriteLine("The answer is greater than 10"); Console.WriteLine("Or the first number is greater than the second"); } else { Console.WriteLine("The answer is not greater than 10"); Console.WriteLine("And the first number is not greater than the second"); } }Comente a chamada para
ExploreIf(). Isto torna a saída menos desordenada enquanto trabalhas nesta parte://ExploreIf();
Em C#, o // inicia um comentário. Comentários são qualquer texto que queiras manter no teu código-fonte, mas não executar como código. O compilador não gera qualquer código executável a partir dos comentários.
Usar ciclos para repetir operações
Outro conceito importante para criar programas maiores são os ciclos. Use loops para repetir instruções que queira executar mais do que uma vez.
Adicione este código após a chamada para
ExploreIf:int counter = 0; while (counter < 10) { Console.WriteLine($"Hello World! The counter is {counter}"); counter++; }A instrução
whileverifica uma condição e executa a instrução seguindo owhile. Repete a verificação da condição e a execução dessas instruções até que a condição seja falsa.Há um outro novo operador neste exemplo. O
++após a variávelcounteré o operador de incremento . Adiciona 1 ao valor decountere armazena esse valor nacountervariável.Importante
Certifica-te de que a
whilecondição do loop muda para falsa à medida que executas o código. Caso contrário, você cria um loop infinito onde seu programa nunca termina. Esse comportamento não é demonstrado neste exemplo, porque tens de forçar o teu programa a sair usando CTRL-C ou outros meios.O loop
whiletesta a condição antes de executar o código após owhile.O loop
do...whileexecuta o código primeiro e, em seguida, verifica a condição. O ciclo do while é mostrado no seguinte código:int counter = 0; do { Console.WriteLine($"Hello World! The counter is {counter}"); counter++; } while (counter < 10);Este
doloop e o loop anteriorwhileproduzem a mesma saída.
Vamos passar para uma última instrução de loop.
Trabalhar com o ciclo for
Outra instrução de loop comum que você vê no código C# é o loop for.
Experimenta este código:
for (int counter = 0; counter < 10; counter++) { Console.WriteLine($"Hello World! The counter is {counter}"); }O loop
foranterior faz o mesmo trabalho que o loopwhilee o loopdoque você já usou. A instruçãofortem três partes que controlam como ela funciona:- A primeira parte é o para inicializador:
int counter = 0;declara quecounteré a variável de loop e define seu valor inicial como0. - A parte do meio é a condição do for:
counter < 10declara que esteforciclo continua a executar enquanto o valor decounterfor inferior a 10. - A parte final é o para iterador:
counter++especifica como modificar a variável de loop depois de executar o bloco após a instruçãofor. Aqui, ele especifica quecounterincrementa em 1 cada vez que o bloco é executado.
- A primeira parte é o para inicializador:
Experimente essas condições você mesmo. Tente cada uma das seguintes alterações:
- Altere o inicializador para começar com um valor diferente.
- Altere a condição para parar em um valor diferente.
Quando terminares, passa para a próxima secção para escreveres algum código tu próprio e usa o que aprendeste.
Há uma outra instrução de looping que não é abordada neste tutorial: a instrução foreach. A instrução foreach repete sua instrução para cada item em uma sequência de itens. Na maioria das vezes, usa-se com coleções. É abordado no próximo tutorial.
Loops aninhados criados
Podes aninhar um ciclo while, do ou for dentro de outro ciclo para criar uma matriz, combinando cada item no ciclo exterior com cada item no ciclo interior. Vamos construir um conjunto de pares alfanuméricos para representar linhas e colunas.
Adicione o seguinte
forciclo que gera as linhas:for (int row = 1; row < 11; row++) { Console.WriteLine($"The row is {row}"); }Adicione outro ciclo para gerar as colunas:
for (char column = 'a'; column < 'k'; column++) { Console.WriteLine($"The column is {column}"); }Finalmente, aninha-se as colunas em laço dentro das linhas para formar pares:
for (int row = 1; row < 11; row++) { for (char column = 'a'; column < 'k'; column++) { Console.WriteLine($"The cell is ({row}, {column})"); } }O laço exterior incrementa uma vez para cada percurso completo do laço interior. Inverta o aninhamento de linhas e colunas e veja as alterações você mesmo. Quando terminares, coloca o código desta secção num método chamado
ExploreLoops().
Combinar ramificações e ciclos
Agora que usaste a if instrução e os construtos de looping na linguagem C#, vê se consegues escrever código C# para encontrar a soma de todos os inteiros de 1 a 20 que são divisíveis por 3. Aqui estão algumas dicas:
- O operador
%fornece o restante de uma operação de divisão. - A declaração
ifdá-lhe a condição para ver se um número deve fazer parte da soma. - O loop
forpode ajudá-lo a repetir uma série de passos para todos os números de 1 a 20.
Experimente você mesmo. Em seguida, verifique como você fez. Como sugestão, a resposta deverá ser 63.
Inventou algo assim?
int sum = 0;
for (int number = 1; number < 21; number++)
{
if (number % 3 == 0)
{
sum = sum + number;
}
}
Console.WriteLine($"The sum is {sum}");
Completaste o tutorial de "ramificações e ciclos". Você pode aprender mais sobre esses conceitos nestes artigos:
Recursos de limpeza
O GitHub apaga automaticamente o seu Codespace após 30 dias de inatividade. Se planeia explorar mais tutoriais nesta série, pode deixar o seu Codespace provisionado. Se estiver pronto para visitar o site .NET para descarregar o SDK .NET, pode eliminar o seu Codespace. Para eliminar o seu Codespace, abra uma janela do navegador e navegue até aos seus Codespaces. Deves ver uma lista dos teus codespaces na janela. Selecione os três pontos (...) na entrada para o espaço de código do tutorial de aprendizado e selecione apagar.