Partilhar via


Instruções condicionais

Instruções de código de JScript são executadas seqüencialmente por padrão. Talvez seja útil, no entanto, para alterar o controle de transferência e a seqüência lógico a uma parte do código, dependendo das condições específicas não seqüenciais. Uma estrutura de controle transfere o controle de programa para um dos dois locais, dependendo de uma instrução condicional testa o verdadeiro ou falso. Qualquer expressão coercitivo para um valor booleano pode ser usado como uma instrução condicional. Algumas instruções de condição comuns são mencionadas aqui.

Igualdade estrita e igualdade

O operador de igualdade (==) em uma condição de instrução verifica se os dois argumentos passados para ele tem o mesmo valor, executar a conversão de tipo, se necessário, para fazer uma comparação. O operador de igualdade estrita (=) compara o valor e o tipo de duas expressões; é retornado verdadeiro somente se o valor e tipo de dados é os mesmos dois operandos. Observe que o operador de igualdade estrita não faz distinção entre os tipos diferentes de dados numéricos.

O código a seguir JScript combina um operador de igualdade com um Se declaração que usa a ele. Para obter mais informações, consulte Estruturas de controle.

function is2000(x) : String {
   // Check if the value of x can be converted to 2000.
   if (x == 2000) {
      // Check is the value of x is strictly equal to 2000.
      if(x === 2000)
         print("The argument is number 2000.");
      else
         print("The argument can be converted to 2000.");
   } else {
      print("The argument is not 2000.");
   }
}
// Check several values to see if they are 2000.
print("Check the number 2000.");
is2000(2000);
print("Check the string \"2000\".");
is2000("2000")
print("Check the number 2001.");
is2000(2001);

A seguir é a saída desse código.

Check the number 2000.
The argument is number 2000.
Check the string "2000".
The argument can be converted to 2000.
Check the number 2001.
The argument is not 2000.

Desigualdade e desigualdade estrita

O operador de desigualdade (!=) retorna o resultado oposto do operador de igualdade. Se os operandos têm o mesmo valor, o operador de desigualdade retorna false; Caso contrário retorna true. Da mesma forma, o operador de desigualdade estrita (! = =) retorna o resultado oposto do operador de igualdade estrita.

Considere o seguinte exemplo de código de JScript em que o operador de desigualdade é usado para controlar um while loop. Para obter mais informações, consulte Estruturas de controle.

var counter = 1;
// Loop over the print statement while counter is not equal to 5.
while (counter != 5) { 
   print(counter++);
}

A seguir está a saída desse código.

1
2
3
4

Comparação

Os operadores de igualdade e desigualdade são úteis se um dado tem um valor específico. No entanto, em algumas situações código talvez precise verificar se um valor está em um intervalo específico. Os operadores relacionais, menor que (<), maior que (>), menor ou igual a (< =) e maior ou igual a (> =), são apropriadas para esses casos.

if(tempInCelsius < 0)
   print("Water is frozen.")
else if(tempInCelsius > 100)
   print("Water is vapor.");
else
   print("Water is liquid.);

Circuito curto

Se você deseja testar várias condições juntos e você sabe que um é mais provável de pass ou fail que as outras, você pode usar um recurso chamado avaliação de circuito curto para acelerar a execução do script e evitar os efeitos colaterais que poderiam causar erros. Quando JScript avalia uma expressão lógica, avalia apenas quantas subexpressões conforme necessário, para obter um resultado.

O e lógico (& &) operador avalia a expressão esquerda passado a ele pela primeira vez. Se essa expressão se converte em false, e não pode ser o resultado do operador lógico and true independentemente do valor da expressão direita. Portanto, a expressão direita não será avaliada.

Por exemplo, na expressão ((x == 123) && (y == 42)), JScript primeiro verifica se x é 123. Se não estiver, o teste para y nunca é feita, e JScript retorna o valor false.

Da mesma forma, o operador lógico OR (||) avalia a expressão esquerda primeiro e se converte para true, a expressão direita não será avaliada.

Curto-circuitando é útil quando as condições a serem testadas envolvem a execução de chamadas de função ou outras expressões complexas. Para fazer um script executada com mais eficiência, coloque as condições mais probabilidade de serem true primeiro para o operador lógico OR. Para o operador e lógico, coloque as condições mais probabilidade de serem false primeiro.

Um exemplo dos benefícios de projetar seu script dessa maneira é que runsecond() não será executada no exemplo a seguir se o valor de retorno de runfirst() converte em false.

if ((runfirst() == 0) || (runsecond() == 0)) {
   // some code
}

Outro exemplo dos benefícios de projetar seu script dessa maneira é que runsecond() não será executada no exemplo a seguir se o valor de retorno de runfirst() converte em false.

if ((x == 0) && (y/x == 5)) {
   // some code
}

Outros

Qualquer expressão que pode ser convertido em um valor booleano pode ser usado como uma instrução de condição. Por exemplo, você poderia usar uma expressão, como:

if (x = y + z) // This may not do what you expect - see below!

Observe que o código acima faz não se x é igual a y + z, pois a sintaxe usa apenas um único sinal de igual (atribuição). Em vez disso, o código acima atribui o valor de y + z à variável xe em seguida, verifica se o resultado de toda a expressão (o valor de x) podem ser convertidos para o valor true. Para verificar se x é igual a y + z, use o código a seguir.

if (x == y + z) // This is different from the code above!

Consulte também

Conceitos

Dados booleanos

Outros recursos

Estruturas de condicional de JScript

Tipos de dados de JScript

Referência de JScript

Operadores (Visual Studio - JScript)