Dudas sobre la evaluación de operadores booleanos en una sentencia condicional en Visual Basic

¿Se puede en Visual Basic 6.0 que si en una expresión con un Or si la primera de las condiciones es Verdad que no evalúe la segunda ya que va a ser una expresión con valor Verdad? Lo mismo para el And, que cuando la primera de las condiciones valga Falso que no evalúe la segunda ya que va a ser una expresión que vale Falso. Muchas gracias expertos!

1 respuesta

Respuesta
1
No sé si se puede hacer directamente porque en un bloque de condiciones se evalúan todas las que estén...
No veo el problema en que evalúe las 2 condiciones ya que eso no hace es mucha carga para el procesador...
Y si están las 2 supongo que debe ser que necesitas que alguna de las 2 sean verdadero en el OR y que alguna de las 2 sea falsa en el AND...
Pero si no quieres que lo haga igualmente..
Tenes que hacerlo con distintos IF
IF (condicion1) THEN
' que esperamos sea verdadera por el OR para no evaluar la condicion2.
Instrucciones
ELSEIF (condicion2) THEN
'si la primera es falsa entra en esta opción, es parecido al SELECT CASE'
instrucciones
ELSE
'si no es ninguna de las 2 condiciones anteriores y es necesario. Si no, se pone END IF en lugar del ELSE'
END IF
Aunque sigo sin entender porque no quieres que se evalúen las 2 condiciones del OR o del AND.
Espeeo haberte ayudado, Desde ya un saludo
Ezequiel
Aunque no lo parezca la razón para hacerlo es lógica... Te voy a poner un ejemplo:
- Imaginate que estás haciendo un proceso con ruptura sobre un recordset en el cual la primera condición del while sea el EOF y en la segunda una comparación con un campo del recordset. En el caso de que llegue a EOF el programa peta porque también compara la segunda condición y como está en EOF no puede acceder a un campo del Recordset y entonces peta.
Pero que yo sepa la única forma de lograrlo es con distintos if.
A ver si entiendo
Vos necesitas que en un while, si es distinto de eot que compare un campo eso se hace así...
While not(rs.eof) do
if rs.campo = variable then
instrucciones endd if
end while

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas