if($price > 100)
{
//too high
tooHigh()
}
elseif($price > 70) //it wasn't greater than 100 - is it greater than 70?
{
//negotiate
negotiate()
}
elseif($price > 20) //OK, wasn't greater than 70 OR 100 - greater than 20 then?
{
//accept
accept()
}
else //Guess not - just don't do anything
{
//thank and escape
thankAndEscape()
}
déclarations de cas ne peut pas faire des conditions malheureusement. Ils sont vraiment "si c'est le cas alors ..." dans l'honnêteté brutale
Cela devrait fonctionner comme les conditions tomberont simplement à la prochaine jusqu'à ce qu'il atteigne le fond. si on fait correspondre - le reste de la déclaration est ignoré ... C'est si j'ai ma logique dans le bon sens ...
Je ne pense pas que vous aurez besoin de faire la correspondance de plage comme c'est déjà le cas l'instruction if. Par exemple. L'indication «entre 70 et 20» est simplifiée à plus de 20 inférieure à 70 dans des conditions séparées. Un peu plus efficace et plus facile à lire.
Je déteste les petits problèmes de performance. J'insiste pour utiliser foreach over for loop! Je pense que la performance peut être accélérée beaucoup sur la logique de travail plutôt que sur les outils. – nerkn
Je suis profondément d'accord :) –
commutateur peut avoir un facteur de 50x amélioration par rapport à une déclaration if. Beaucoup de langues ont ce problème - compilé ou autrement. Mais parfois il n'y a pas d'autre option. Sauf si vous optez pour un paradigme sans condition. – Glycerine