Avaliação de Curto-Circuito
Parte da seção Lógica & Fluxo do Journey de C# da Coddy. Lição 36 de 66.
A avaliação de curto-circuito é uma técnica de otimização em C# na qual o segundo operando dos operadores lógicos AND (&&) e OR (||) é avaliado somente quando necessário.
Para o AND lógico (&&), se o primeiro operando for false, o resultado será sempre false, independentemente do segundo operando:
bool result = false && SomeMethod();Neste exemplo, SomeMethod() não será chamado porque o primeiro operando já é false.
Para o OR lógico (||), se o primeiro operando for true, o resultado será sempre true, independentemente do segundo operando:
bool result = true || SomeMethod();Aqui, SomeMethod() não será chamado porque o primeiro operando já é true.
Esse comportamento pode ser usado para evitar erros, como verificar se um objeto é nulo antes de acessar suas propriedades:
// Seguro - se student for null, o lado direito não será avaliado
if (student != null && student.Grade > 70)
{
Console.WriteLine("Student passed!");
}Desafio
FácilCrie um método chamado ProcessUserInput que receba dois argumentos:
- Uma string (
input) - Um inteiro (
minLength)
O método deve:
- Verificar se a entrada não é nula
- Verificar se o comprimento da entrada é pelo menos
minLength - Somente se ambas as condições forem verdadeiras, imprimir "Valid input: " seguido pela entrada
- Se qualquer uma das condições falhar, imprimir "Invalid input"
Use avaliação de curto-circuito para evitar qualquer possível NullReferenceException.
Experimente você mesmo
using System;
class ProcessUserInput
{
public static void processUserInput(string input, int minLength)
{
// Escreva seu código aqui
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica & Fluxo
1Matrizes Multidimensionais
Noções Básicas de Matrizes 2DDeclaração e Inicialização de Matrizes 2DAcesso aos Elementos de Matrizes 2DLoops Aninhados com Matrizes 2DMatrizes IrregularesOperações Comuns com MatrizesRevisão - Multidimensional4Técnicas de Controle de Fluxo
Retornos AntecipadosCláusulas de GuardaInstruções de Salto (goto)Break e ContinueSimplificando Condicionais Aninhadas7Operadores Lógicos Avançados
Avaliação de Curto-CircuitoOperadores Lógicos CondicionaisPrecedência de OperadoresRevisão - Operadores Avançados2Tomada de Decisões Avançada
Múltiplas CondiçõesLógica Booleana ComplexaComparação entre If e SwitchInstruções Switch AninhadasRevisão - Decisões Avançadas5Tratamento de Exceções
Noções básicas de Try-CatchTipos de ExceçãoMúltiplos blocos CatchTrabalhando com ArquivosBloco FinallyUsando Using vs. Try-FinallyExceções PersonalizadasRecapitulação - Tratamento de Erros3Aprimoramentos de Loops
Desempenho de LoopsIteração de Estruturas ComplexasCada Tipo de LoopRefatoração de LoopsRevisão - Loops Otimizados6Tratamento de Nulos
Fundamentos de Referências NulasTipos de Valor AnuláveisPadrões de Verificação de NulosProgramação DefensivaRecapitulação — Segurança contra NulosPratique por conta própria: Compilador de C# online