RPG : simplifiez vos expressions logiques par l'arithmétique booléenne

Voici un petite exemple qui peut vous aider à simplifier votre code :

 

  // variables
     d Erreur          s               n   inz( *off )
     d Trouve          s               n   inz( *on )
     d Demande         s               n   inz( *on )

      /free

       // opérations logiques :
       if Demande = *on and Trouve = *on ;
          Erreur = *off ;
       else ;
          Erreur = *on ;
       endif ;

       // Equivalent :
       if Demande and Trouve ;   // *on est la valeur vraie
          Erreur = *off ;
       else ;
          Erreur = *on ;
       endif ;

       // Equivalent :
       Erreur = not ( Demande and Trouve ) ;  // Calcul et affectation

NB