Conditions & Logique
If, Case et modèles de logique imbriquée.
If() et Case() servent à gérer les options, les majorations, les sélections de matériau et les règles dépendantes du contexte.
Condition simple
If(condition; valueIfTrue; valueIfFalse) Examples: If($width > 1000; $width * 1.1; $width) → add 10% surcharge If($material == "steel"; 7.85; 2.7) → density by material
Conditions imbriquées
Les appels If() peuvent être imbriqués pour exprimer plusieurs niveaux de logique, par exemple des paliers de prix.
If($width > 2000;
$width * 1.2;
If($width > 1000;
$width * 1.1;
$width
)
) → tiered pricingCase pour plusieurs branches
Case() fonctionne comme un switch : une expression, puis des paires valeur/résultat et enfin une valeur par défaut.
Case(expr; val1; result1; val2; result2; ...; default) First argument is the expression to match, then pairs of value;result. The last argument is the default when no value matches. Example: Case($Profile; "Milan"; 13; "Milan Slim"; 12; 0) → returns 13 when $Profile is "Milan", 12 when "Milan Slim", 0 otherwise
Motifs fréquents
- Majoration: If($width > 1000; $price * 1.1; $price)
- Facteur matériau: If($material == "steel"; 7.85; 2.7)
- Quantité minimale: max($count; 1)
- Division sûre: If($d != 0; $v / $d; 0)
- Option: If($hasDoor == 1; $doorPrice; 0)
Des chaînes If() trop profondes deviennent difficiles à relire. Préférez Case() ou répartissez la logique sur plusieurs lignes de calcul.