sentencia que programacion lenguaje funciona español else ejemplos condiciones con como anidado c# if-statement conditional-statements

c# - lenguaje - que es if else en programacion



¿Una declaración IF dejará de evaluar si falla la primera condición? (8)

.NET admite el short circuiting así que cuando la primera condición falla, no verificará la segunda condición ... En C # || y && son las versiones en cortocircuito de los operadores lógicos | y, respectivamente ... A menudo también es más rápido ...

Si tengo una declaración If con 2 condiciones, y la primera falla, ¿se considerará siquiera la segunda condición o irá directamente a la else ? Entonces, en el siguiente ejemplo, si myList.Count == 0 , ¿se comparará myString con "valor" o solo directamente a else ?

if(myList.Count > 0 && myString.Equals("value")) { //Do something } else { //Do something else }


Considera lo siguiente:

static int? x; static int? y; static void Main(string[] args) { x = 5; if (testx() & testy()) { Console.WriteLine("test"); } } static Boolean testx() { return x == 3; } static Boolean testy() { return y == 10; }

Si realiza un seguimiento a través de las funciones testx y testy se evalúan a pesar de que testx era falso.

Si cambia la prueba a &&, solo se marcó el primero.


Dejará de evaluar porque está utilizando el operador de doble signo &&. Esto se llama short-circuiting .

Si lo cambió a un solo signo comercial:

if(myList.Count > 0 & myString.Equals("value"))

evaluaría ambos.


En su ejemplo, la segunda declaración solo se evaluará si la primera falla. El AND && lógico solo devolverá true cuando ambos operandos son verdaderos, también conocido como evaluación de corto circuito .



No, la segunda condición se omitirá si usa && ,

Si usa & será considerado


No, no será considerado. (Esto se conoce como cortocircuito ).

El compilador es lo suficientemente astuto (y lo requiere la especificación del lenguaje) para saber que si la primera condición es false , no hay forma de que la expresión se evalúe como true .

Y como señaló Jacob || Cuando la primera condición es true , la segunda condición no será evaluada.


Si el operador lógico es AND (&&), la instrucción IF evaluaría la primera expresión; si la primera es falsa, no evaluaría la segunda. Esto es útil para verificar si la variable es nula antes de llamar al método en la referencia, para evitar la excepción del puntero nulo

Si el operador lógico es OR (||), entonces la instrucción IF evaluaría la primera expresión; si la primera es verdadera, no evaluaría la segunda.

Los compiladores y tiempos de ejecución están optimizados para este comportamiento