Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Instruções e ciclos do
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#.
Dica
Quando um bloco de trecho de código inclui o botão "Executar", esse botão abre a janela interativa ou substitui o código existente na janela interativa. Quando o trecho não inclui um botão "Executar", você pode copiar o código e adicioná-lo à janela interativa atual.
Execute o seguinte código na janela interativa. Selecione Executar:
int a = 5;
int b = 6;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10.");
Modificar a declaração de b
para que a soma seja inferior a 10:
int b = 3;
Selecione o botão Executar novamente. 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
Ao explorar C# (ou qualquer linguagem de programação), você comete erros ao escrever código. O compilador encontra esses erros e os relata para você. Quando a saída contiver mensagens de erro, observe atentamente o código de exemplo e o código na janela interativa para ver o que corrigir. Esse exercício ajuda você a aprender a estrutura do código C#.
Este primeiro exemplo mostra o poder dos tipos if
e booleano. Um booleano é 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. Tente o 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");
A instrução que segue a palavra-chave else
é executada somente quando a condição que está sendo testada é false
. Combinar if
e else
com condições booleanas fornece toda a potência que você precisa.
Importante
O recuo sob as if
e else
declaraçõ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-chave if
ou else
é 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áusulas if
e else
. O exemplo a seguir é o mesmo que você criou. Experimente.
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.
Você pode testar condições mais complicadas:
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 em a = 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 }
.
Você também pode usar ||
para representar "ou":
if ((a + b + c > 10) || (a == b))
Modifique os valores de a
, b
e c
e alterne entre &&
e ||
para explorar. Você ganha mais compreensão de como os operadores de &&
e ||
funcionam.
Usar ciclos para repetir operações
Outro conceito importante para criar programas maiores é o uso de ciclos (loops). Você usa loops para repetir instruções que deseja executar mais de uma vez. Experimente este código na janela interativa:
int counter = 0;
while (counter < 10)
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
}
A instrução while
verifica uma condição e executa a instrução seguindo o while
. 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ável counter
é o operador de incremento . Ele adiciona 1 ao valor do contador e armazena esse valor na variável do contador.
Importante
Certifique-se de que a condição de loop while
alterne para false à medida que você executa o código. Caso contrário, você cria um loop infinito onde seu programa nunca termina. Não vamos demonstrar isso, porque o mecanismo que executa seu código expira e você não vê nenhuma saída do seu programa.
O loop while
testa a condição antes de executar o código após o while
. O loop do
... while
executa o código primeiro e, em seguida, verifica a condição. Tem a seguinte aparência:
int counter = 0;
do
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
} while (counter < 10);
Este loop do
e o loop while
anterior funcionam da mesma forma.
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
. Experimente este código na janela interativa:
for (int counter = 0; counter < 10; counter++)
{
Console.WriteLine($"Hello World! The counter is {counter}");
}
O loop for
anterior faz o mesmo trabalho que o loop while
e o loop do
que você já usou. A instrução for
tem 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 para a condição:
counter < 10
declara que esse loop defor
continua a ser executado desde que o valor do contador seja menor que 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 quecounter
incrementa em 1 cada vez que o bloco é executado.
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 terminar, vamos passar a escrever algum código para usar o que você aprendeu.
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. É mais frequentemente usado com coleções. É abordado no próximo tutorial.
Loops aninhados criados
Um loop de while
, do
ou for
pode ser aninhado dentro de outro loop para criar uma matriz usando a combinação de cada item no loop externo com cada item no loop interno. Vamos fazer isso para construir um conjunto de pares alfanuméricos para representar linhas e colunas.
Um loop for
pode gerar as linhas:
for (int row = 1; row < 11; row++)
{
Console.WriteLine($"The row is {row}");
}
Outro loop pode gerar as colunas:
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The column is {column}");
}
Você pode aninhar um loop dentro do outro para formar pares:
for (int row = 1; row < 11; row++)
{
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The cell is ({row}, {column})");
}
}
Você pode ver que o loop externo aumenta uma vez para cada execução completa do loop interno. Inverta o aninhamento de linhas e colunas e veja as alterações você mesmo.
Combinar ramificações e ciclos
Agora que você viu a instrução if
e as construções de looping na linguagem C#, veja se você pode 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
if
dá-lhe a condição para ver se um número deve fazer parte da soma. - O loop
for
pode 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?
Você concluiu o tutorial interativo sobre "ramos e loops". Você pode selecionar o link coleção de listas para iniciar o próximo tutorial interativo, ou pode visitar o site do .NET para baixar o SDK do .NET, criar um projeto no seu computador e continuar a programar. A secção "Próximos passos" traz-o de volta a estes tutoriais.
Você pode aprender mais sobre esses conceitos nestes artigos: