Es! (~ A ~ && B) mejor que (A || B) en la programación?

SR Arun:

Estoy desarrollando en Javay estoy usando IntelliJcomo mi IDE. Escribí un ifcomunicado de la siguiente manera.

if( list1.size() >= 1 || list2.contains(itemX) ) {
    //do something
}

IntelliJsugiere una transformación ( DeMorgan's Law) y se transformó a:

if( ! ( list1.size() < 1 && !( list2.contains(itemX) ) ) ) {
    //do something
}

Por lo tanto, aplica una teoría matemática discreta muy común en la simplificación de expresiones booleanas. Lo que me pregunto es cómo hace esto optimizar la nada?

|| operador de todos modos no se ejecuta todo el estado si la primera parte es en sí misma verdad, y sólo ejecuta el lado derecho sólo si la primera parte es falsa.

¿Es efectiva la condición transformado? ¿Cómo?

Tejaswini Nanaware:

Ambos son exactamente las mismas declaraciones.

Estoy de acuerdo que el operador OR no evalúa la segunda parte si la primera parte es cierto, sin embargo, también es cierto que el operador no evalúa la segunda parte si la primera parte es FALSO.

De hecho, se tardará más tiempo y espacio para evaluar el ~ (~ A ~ && B), frente a A || B.

Espero que esto ayude :)

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=231530&siteId=1
Recomendado
Clasificación