Saltar al contenido

Si se cumple la condición A, se debe cumplir la condición B para realizar la acción C

Poseemos la mejor solución que descubrimos en internet. Esperamos que te resulte de ayuda y si deseas aportar algo que nos pueda ayudar a perfeccionar nuestra información hazlo con total libertad.

Solución:

Su primer paso en este tipo de problemas siempre es hacer una tabla lógica.

A | B | Result
-------------------
T | T | do action C
T | F | ...
F | T | do action C
F | F | do action C

Una vez que hayas hecho la tabla, la solución es clara.

if (A && !B) 
  ...

else 
  do action C

Tenga en cuenta que esta lógica, aunque más corta, puede ser difícil de mantener para los futuros programadores.

Tienes dos opciones:

  1. Escribe una función que realice la “acción C”.

  2. Reorganice su lógica para que no tenga tantas declaraciones if anidadas. Pregúntese qué condiciones hacen que ocurra la “acción C”. Me parece que sucede cuando la “condición B” es true o “condición A” es false. Podemos escribir esto como “NO A NI B”. Traduciendo esto a código C, obtenemos

    if (!A || B) 
        action C
     else 
        ...
    
    

Para obtener más información sobre este tipo de expresiones, sugiero buscar en Google “álgebra booleana”, “lógica de predicados” y “cálculo de predicados”. Estos son temas matemáticos profundos. No necesitas aprenderlo todo, solo lo básico.

También debe aprender sobre la “evaluación de cortocircuito”. Debido a esto, el orden de las expresiones es importante para duplicar exactamente la lógica original. Tiempo B || !A es lógicamente equivalente, usando esto como la condición ejecutará la “acción C” cuando B es true independientemente del valor de A.

Puedes simplificar la declaración de esta manera:

if ((A && B) || (!A)) // or simplified to (!A || B) as suggested in comments

    do C

De lo contrario, coloque el código para ‘C’ en una función separada y llámelo:

DoActionC()

    ....
    // code for Action C

if (condition A)

    if(condition B)
      
         DoActionC(); // call the function
      
    else
      ...

else

   DoActionC(); // call the function

Puedes sostener nuestra función añadiendo un comentario y dejando una valoración te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *