Muchos de nosotros, sobre todo los históricos de VB, hemos pasado días enteros escribiendo sentencias donde abundan un buen numero de liados entramados de condicionales…
If Expresion1 And (Not Expresion2) And Expresion3 Then ….
Es normal dentro de nuestra concentración al escribir código, que pongamos nuestro foco de atención en resolver el planteamiento más que en imaginarnos lo que ocurre en el momento de su ejecución. Sin ir más lejos cuántos de nosotros nos abstraemos del algoritmo y pensamos en las miles o millones de veces que llegara a ejecutarse la evaluación de dichas expresiones. Y cuántos de nosotros a pesar de ejecutarse en un procesador capaz de recorrer millones de Instrucciones por segundo, intentamos abstraernos en un pensamiento “ecologista” en tanto a no malbaratar la circulación inútil de ‘bitios’. La respuesta es “Algunos de nosotros SI pensamos en todo esto” y como no, VB también!
Ahora toca preguntarnos ¿y esto que viene a contarnos?… la respuesta seria pues AndAlso, what else!
Cuando detrás de un condicional ‘If’ agrupamos varias expresiones enlazadas con operadores, a saber ‘Or’… ‘And’, debemos tener muy en cuenta que el resultado será fruto de la evaluación de todos ellos con el consecuente consumo de procesador.
Expresión 1 |
AND Expresión 2 |
Resultado |
Verdadero |
Verdadero |
Verdadero |
Verdadero |
Falso |
Falso |
Falso |
Verdadero |
Falso |
Falso |
Falso |
Falso |
Pero para que tanto ruido?
Intentando buscar justificaciones, escribiendo un poquito más tendremos a nuestra disposición ‘AndAlso’
Expresión 1 |
ANDALSO Expresión 2 |
Resultado |
Verdadero |
Verdadero |
Verdadero |
Verdadero |
Falso |
Falso |
Falso |
No se Evalúa |
Falso |
Aun así seguro que mas de uno ponéis cara de extrañados, bien el matiz se encuentra en que “No se Evalúa” significa que “No se procesa” por lo que si encadenamos varias evaluaciones de expresiones con ‘and’, usando ‘andalso’ ahorraremos en consumo de proceso, por lo que solo continuara evaluando las expresiones si la precedente es ‘Verdadera’ y finalizara la evaluación del resto de expresiones al obtener el primer ‘falso’.
Sin duda simpáticas historias.
Pep Lluis,
Por Cierto os he hablado de ‘OrElse’… vaya! pues tambien existe!
Expresión 1 |
Expresión 2 |
Resultado |
Verdadero |
No se evalúa |
Verdadero |
Falso |
Verdadero |
Verdadero |
Falso |
Falso |
Falso |
Lo de WhatElse vamos a dejarlo para otro dia jajajajaja.