Simplifier les tests complexes

Je vois dans certains messages des programmes qui sont des suites de tests, parfois très complexes ou très nombreux parce qu’il y a beaucoup de cas possibles.

Je me demandais si on pourrait simplifier ça en déclarant des variables booléennes avant de faire les tests et tester sur ces variables booléennes. A défaut de simplifier le code, ça aiderait à la lecture. J’ai essayé mais le compilateur n’en veut pas. Est-ce que je me suis gouré ou bien c’est juste pas possible en C++ ?

Un exemple :

Avant :

if (a<0 && b>0 && c==1) { blablabla(); }
else if (e<0 && f>0 && g==1) { autrechose(); }
else { lereste(); }

Après :

bool test1 = (a<0 && b>0 && c==1);
bool test2 = (e<0 && f>0 && g==1);
if  (test1) { blablabla(); }
else if (test2) { autrechose(); }
else { lereste(); }

Bien sûr si les valeurs des booléens changent entre les tests, on peut les recalculer, mais c’est une autre histoire.

dans ton exemple, tu fais la même chose en rajoutant 2 lignes en plus, donc l'intérêt?

Et il te dit quoi, ton compilateur mécontent ?

Nota: dans ton exemple, test1 et test2 sont possible simultanément, mas ta construction if ... else if ... ne le couvre pas.

C'es juste, ce ne sont que des exemples qui me sont venus à l'esprit comme ça, sans réfléchir. Ma question &tit de savoir si c'est possible ou pas : vous semblez dire que oui. Donc je ne sais pas pourquoi le compilo n'aimait pas. Je retesterai.

@infobarquee : l'idée est que c'est plus facile à lire, de mon point de vue. Je n'aime pas les codes qui ont des lignes très longues voire une instruction sur plusieurs lignes. Or comme on utilise des noms de variables explicites comme "moncapteur" ou "niveaumesure", quand on fait des tests complexes, la ligne de commande devient longue.

C'est juste, merci pepe, je vais réfléchir à ça...