3 votes

Existe-t-il une meilleure façon de vérifier ces deux variables au lieu de quatre ifs ?

Il doit y avoir deux variables par exemple A et B, ces deux variables prendront les valeurs 0 0, 0 1 , 1 0 ou 1 1. J'ai besoin de vérifier ces deux variables et de renvoyer une valeur comprise entre 0 et 3, y a-t-il une meilleure façon de procéder que celle qui consiste à utiliser quatre variables ? if des déclarations comme :

if(B == 0 && A == 0){
  return 0;
}
if(B == 0 && A == 1){
  return 1;
}
if(B == 1 && A == 0){
  return 2;
}
if(B ==1 && A == 1){
  return 3;
}

9voto

Adrian Mole Points 30581

Les quatre conditions que vous avez montrées pourraient être traitées avec la ligne unique :

return A + B * 2;

C'est-à-dire, bien sûr, si le A y B les valeurs jamais être autre chose que 0 o 1 .

1voto

Broman Points 5642

@AdrianMole a déjà posté la réponse évidente pour cette situation particulière. Mais une solution plus générale pourrait ressembler à ceci :

const int ret[2][2] = {
    { 0, 1, },
    { 2, 3, },
};

return ret[B][A];

Pas aussi propre que dans le autre réponse mais beaucoup plus propre qu'un tas d'instructions if.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X