Vous voulez donc enchaîner un certain nombre d'expressions booléennes très similaires sans les écrire toutes explicitement.
if ((i % 1 == 0) && (i % 2 == 0) && (...) && (i % 20 == 0))
{
do action x
}
La première chose que vous pourriez faire est d'extraire l'expression combinée utilisée dans le fichier if
dans une nouvelle fonction. Cela rend votre code plus lisible.
public static void Main()
{
// ...
if (DivisibleByAllUpTo20(i))
{
//do action x
}
// ...
}
private static bool DivisibleByAllUpTo20(int i)
{
return (i % 1 == 0) && (i % 2 == 0) && (...) && (i % 20 == 0);
}
DivisibleByAllUpTo20()
peut alors être mis en œuvre avec un for
boucle comme si vous aviez essayé.
private static bool DivisibleByAllUpTo20(int i)
{
for (int b = 1; b < 21; b++)
{
if (i % b != 0)
return false;
}
return true;
}
À propos : l'espace de noms LINQ fournit de nombreuses méthodes d'aide qui vous permettent d'écrire ce type de code de manière beaucoup plus concise et propre :
using System.Linq;
// ...
if (Enumerable.Range(1, 20).All(n => n % i == 0))
{
// do action x
}