du code oui mais pas beau ...

Bonjour,

Je fais appel a vous pour améliorer mon code que je ne trouve pas pertinent ou du moins très lisible.

  int sensor = 0;
  //find sensor status from all MOC
  for (int MOC = 0; MOC < NUMBER_OF_MOC; MOC++ )
  {
   // find MOC to last known state (using eeprom storage)
   int MOC1 = loadState(MOC);
   int MOC2 = loadState(MOC + 1);
   
    if ( MOC1 == MOC2 && MOC1 == 0 ) {
      Radiator_value[sensor] = 'C';
    } else if ( MOC1 == MOC2 && MOC1 == 1 ) {
      Radiator_value[sensor] = 'E';
    }
    if ( MOC1 != MOC2 && MOC1 == 0 ) {
      Radiator_value[sensor] = 'G';
    } else if ( MOC1 != MOC2 && MOC1 == 1 ) {
      Radiator_value[sensor] = 'O';
    }
    
  sensor++;
  MOC++;
  }

La première partie jusqu’aux première boucle if … else if me parait correcte, mais après les deux boucles if else if qui sont fonctionnelle mais peut lisible.

Je dois lire l’état de 18 MOC 2 part 2 qui vont me définir un état de “sensor”, 9 au total, suivant ce tableau :
Etat , MOC1, MOC2
{‘O’, 1, 0}
{‘G’, 0, 1}
{‘E’, 1, 1}
{‘C’, 0, 0}

Quelqu’un aurai une façon de faire plus lisible.

merci de votre aide.

hello
est ce plus joli (et fonctionnel ( car pas testé)) ?

int sensor = 0;
  for (int MOC = 0; MOC < NUMBER_OF_MOC; MOC += 2 )
  {
    int MOC1 = loadState(MOC);
    int MOC2 = loadState(MOC + 1);

    if ( MOC1 == 0 )                     //MOC1=0
    {
      if ( MOC2  == 0 )                  //MOC1=0,MOC2=0
      {
        Radiator_value[sensor] = 'C';
      }

      else                                //MOC1=0, MOC2=1
      {
        Radiator_value[sensor] = 'G';
      }
    }
    else                                  // MOC1=1
    {
      if ( MOC2  == 1 )                   // MOC1=1, MOC2=1
      {
        Radiator_value[sensor] = 'E';
      }

      else                                // MOC1=1, MOC2=0
      {
        Radiator_value[sensor] = 'O';
      }
    }
    sensor++;
  }