Avaliação de curto-circuito, avaliação mínima ou avaliação de McCarthy especifica a semântica de alguns operadores booleanos em algumas linguagens de programação na qual o segundo argumento é apenas executado ou avaliado se o primeiro argumento não for suficiente para determinar o valor da expressão: quando o primeiro argumento de uma função AND é avaliado como falso, o valor global deve ser falso e quando o primeiro argumento da função OR for avaliado como verdadeiro, o valor global deve ser verdadeiro. Em algumas linguagens de programação (Lisp), os operadores booleanos usuais são de curto-circuito. Em outras (Java, Ada), os operadores booleanos padrões e de curto-circuito estão disponíveis.
O operador de curto-circuito x Sand y é equivalente à expressão condicional if x then y else false. x Sor y é equivalente à if x then true else y.
Suporte em linguagens de programação comuns
+ Operadores booleanos em várias linguagens Linguagem Operadores Operadores de curto-circuito Tipo do resultado Ada, Eiffel and , or and then , or else Booleano ALGOL 68 and , & , ∧ ; or , ∨ andf , orf (ambos definidos pelo usuário) Booleano C1 & , | && , || Numérico C++, Objective Caml, Haskell none && , || Booleano C#, Java, MATLAB,MATLAB documentation: Logical Operators: Short-circuit && || R & , | && , || Booleano ColdFusion none AND , OR , && , || Booleano Erlang and, or andalso , orelse Booleano Fortran .and. , .or. Booleano JavaScriptnone && , || Último valor Lisp, Lua, Scheme none and , or Último valor Pascal and, or2 and_then , or_else3 Booleano Perl, Ruby & , | && , and , || , or Último valor PHP none && , and , || , or Booleano Python none and , or Último valor Smalltalk & , | and: , or: Booleano Standard ML andalso , orelse Booleano Visual Basic .NET And , Or AndAlso , OrElse Booleano VB Script, VB Classic, VBA And , Or Select Case Numérico 1 C, antes C99, de fato não possuía um tipo booleano distinto. 2 ISO Pascal permite, mas não requer operações de curto-circuito. 3 ISO-10206 Extended Pascal suporta and_then e or_else.GNU Pascal reference
Referências
Categoria:Aritmética computacional