J'ai recours à des valeurs booléennes séparées :
Bool cond1 == (var1 && var2);
Bool cond2 == (var3 && var4);
if ( cond1 && cond2 ) {}
C'est quelque chose qui me dérange dans toutes les langues que j'ai utilisées, j'ai une instruction if mais la partie conditionnelle a tellement de vérifications que je dois la diviser sur plusieurs lignes, utiliser une instruction if imbriquée ou simplement accepter que c'est moche et continuer ma vie.
Y a-t-il d'autres méthodes que vous avez trouvées qui pourraient être utiles à moi et à quelqu'un d'autre qui rencontre le même problème ?
Exemple, tout sur une seule ligne :
if (var1 = true && var2 = true && var2 = true && var3 = true && var4 = true && var5 = true && var6 = true)
{
Exemple, multiligne :
if (var1 = true && var2 = true && var2 = true
&& var3 = true && var4 = true && var5 = true
&& var6 = true)
{
Exemple imbriqué :
if (var1 = true && var2 = true && var2 = true && var3 = true)
{
if (var4 = true && var5 = true && var6 = true)
{
J'ai recours à des valeurs booléennes séparées :
Bool cond1 == (var1 && var2);
Bool cond2 == (var3 && var4);
if ( cond1 && cond2 ) {}
J'ai vu beaucoup de personnes et d'éditeurs indenter chaque condition de votre instruction if avec une tabulation, ou la faire correspondre avec la parenthèse ouverte :
if (var1 == true
&& var2 == true
&& var3 == true
) {
/* do something.. */
}
Je mets généralement le parenthèse fermante sur la même ligne que la dernière condition :
if (var1 == true
&& var2 == true
&& var3 == true) {
/* do something.. */
}
Mais je ne pense pas que ce soit aussi propre.
Séparez la condition en plusieurs booléens, puis utilisez un booléen maître comme condition.
bool isOpaque = object.Alpha == 1.0f;
bool isDrawable = object.CanDraw && object.Layer == currentLayer;
bool isHidden = hideList.Find(object);
bool isVisible = isOpaque && isDrawable && ! isHidden;
if(isVisible)
{
// ...
}
Mieux encore :
public bool IsVisible {
get
{
bool isOpaque = object.Alpha == 1.0f;
bool isDrawable = object.CanDraw && object.Layer == currentLayer;
bool isHidden = hideList.Find(object);
return isOpaque && isDrawable && ! isHidden;
}
}
void Draw()
{
if(IsVisible)
{
// ...
}
}
Assurez-vous de donner à vos variables un nom qui indique en fait une intention plutôt qu'une fonction. Cela aidera grandement le développeur à maintenir votre code... ça pourrait être VOUS !
Eh bien, tout d'abord, pourquoi pas :
si (var1