Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Dica
Este artigo faz parte da seção Conceitos Básicos para desenvolvedores que já conhecem pelo menos uma linguagem de programação e estão aprendendo C#. Se você é novo em programação, comece com os tutoriais Comece agora. Para obter a sintaxe completa da instrução, consulte Instruções na especificação da linguagem C#.
Vindo de outro idioma? Declarações, condições, loops e retornos podem ser familiares. O C# usa sua própria sintaxe e classificação para esses recursos, que este artigo apresenta.
Uma instrução é um comando completo: "faça isso". Juntas, as instruções em um programa formam uma receita que o programa segue do início ao fim. A maioria das instruções são executadas em sequência. Os branches escolhem quais etapas executar e os loops repetem as etapas.
Este exemplo declara uma quantidade, exibe-a e, em seguida, usa uma instrução if para decidir se deve ser reabastecida:
int quantity = 5;
Console.WriteLine($"Quantity: {quantity}"); // => Quantity: 5
if (quantity < 10)
{
quantity = 10;
Console.WriteLine("Restocked"); // => Restocked
}
Console.WriteLine($"Quantity: {quantity}"); // => Quantity: 10
Leia o exemplo como comandos completos antes de examinar suas partes. A declaração, a primeira chamada de Console.WriteLine, toda a construção if e a chamada final de Console.WriteLine são instruções. O bloco dentro da if instrução contém mais duas instruções.
As declarações geralmente contêm expressões
As instruções geralmente contêm expressões, que são partes de código que produzem valores. No exemplo anterior, toda a construção if é uma declaração. Sua condição, quantity < 10, é uma expressão que produz ou true ou false.
Uma instrução de declaração apresenta uma variável local ou constante. Uma expressão inicializador pode fornecer seu primeiro valor:
int quantity = 5;
A linha inteira é uma declaração. O inicializador 5 é uma expressão dentro dessa instrução.
Uma expressão de atribuição armazena um valor em uma variável, propriedade, indexador ou outro local de armazenamento. O C# permite que uma expressão de atribuição forme uma instrução de expressão:
quantity = 10;
Essa instrução executa uma ação em vez de apenas calcular um valor. As chamadas de método e as operações de incremento são outras instruções de expressão comuns:
Console.WriteLine("Restocking");
quantity++;
Somente as seguintes formas de expressão podem constituir instruções de expressão:
- Expressões de atribuição
- Expressões de invocação de método
- Expressões de criação de objeto
- Expressões de incremento e decremento de pré-fixo ou pós-fixo
-
awaitExpressões
Nem toda expressão pode existir isoladamente como uma declaração. Por exemplo, calcula um valor, quantity + 1; mas não o usa. Não é uma declaração válida.
Aqui está uma definição prática: um enunciado é mais ou menos como uma frase completa em inglês, enquanto uma expressão é como um sintagma. Essa distinção ajuda você a entender a terminologia formal e as explicações que encontrará na documentação e nas especificações, embora a codificação comum raramente exija que você se lembre da distinção conscientemente.
Agrupar instruções em blocos
Um bloco agrupa zero ou mais instruções entre chaves ({ e }). O C# trata o grupo como uma única instrução. No exemplo inicial, a instrução if pode executar tanto a atribuição quanto a chamada para Console.WriteLine porque um bloco as agrupa em um único corpo. Os blocos podem ser aninhados dentro de outros blocos.
As instruções de seleção e iteração têm como corpo uma instrução incorporada. Esse corpo pode ser uma instrução sem chaves ou um bloco que agrupa várias instruções.
Prefira um bloco mesmo quando um corpo contém apenas uma instrução. As chaves mostram quais instruções pertencem ao corpo e impedem que edições futuras coloquem acidentalmente uma instrução fora dele.
Blocos definem escopo de variável
As variáveis declaradas em um bloco estão no escopo de sua declaração até o final desse bloco. Um bloco aninhado pode usar variáveis declaradas por um bloco delimitado, mas o bloco delimitado não pode usar variáveis declaradas apenas no bloco aninhado:
int outerValue = 10;
if (outerValue > 0)
{
int innerValue = outerValue * 2;
Console.WriteLine(innerValue); // => 20
}
// innerValue isn't in scope here.
Escolha uma declaração para a tarefa
Depois de reconhecer instruções como comandos, você pode escolher entre seus diferentes tipos por finalidade:
- Declarar dados:Instruções de declaração introduzem variáveis locais e constantes.
- Executar ações: As instruções de expressão atribuem valores, métodos de chamada, criam objetos, incrementam ou decrementam valores ou aguardam operações assíncronas.
-
Etapas de escolha:instruções de seleção, como
ifeswitch, escolhem qual código será executado. -
Etapas de repetição:Instruções de iteração, como
foreach,whileefor, repetem uma instrução ou bloco. -
Transferência de controle:Instruções de salto, como
break,continue,returneyield, movem a execução para outro ponto. -
Manipular exceções:instruções de tratamento de exceções, como
try,catchethrow, respondem a erros ou os relatam. -
Gerenciar recursos: A
usinginstrução garante que os recursos sejam descartados. -
Use o comportamento especializado: As instruções
checkedeunchecked,fixedelockoferecem suporte a cenários específicos.
Especificação da linguagem C#
Para obter mais informações, consulte a seção Instruções da especificação da linguagem C#.