Quel est le meilleur des deux: si-elif-d'autre ou if-else
Ce n'est pas des devoirs à faire à la question, cette question est le résultat d'une discussion avec mon ami.
J'ai beaucoup cherché mais impossible de trouver une source fiable qui établit la réponse avec le bon raisonnement donc ici, je suis à la mecque de programmeurs.
Lequel de ces deux moyens de codage est mieux:
if(a)
{
if(b)
....
else if(c)
....
}
ou
if(a && b)
...
else if(a && c)
...
J'ai cherché et trouvé http://en.wikipedia.org/wiki/Cyclomatic_complexity à être utiles, mais ne pouvait toujours pas faire le choix final.
Veuillez fournir les raisonnement ainsi.
Cheers!
- Par le point de vue des performances; Vous aurez du mal à obtenir aucune amélioration significative de la performance de l'aide de l'un d'eux sur l'autre. À mon humble avis, C'est juste une lisibilité chose, il faut s'en préoccuper. Rien d'autre.
- veuillez remplacer le "& " par " &&', ou avez-vous vraiment dire, " &"? vous pouvez également ajouter un tag sur la programmation lanuage
- changé la question abit, si vous pouviez s'il vous plaît prendre un coup d'oeil à nouveau.
Vous devez vous connecter pour publier un commentaire.
Je pense que sans l'optimisation première méthode devrait être plus rapide.
Depuis la 1ère méthode, vous vérifiez
a
une fois et puis sonb
ouc
. si b estfalse
puis il y a 3 chèques(comparaisons).Mais dans le second, vous vérifiez
a
deux fois sib
estfalse
(une fois sib
esttrue
). Il y aura 4 vérifie sib
est faux. mais le compilateur va probablement optimiser à la fois la même.a
est un booléen, pas une fonction) que c'est un parfait exemple d'un micro-optimisation, les plus susceptibles de donner aucun notable amélioration de la performance pour tous les non-trivial programme. C'est plus sur le codage-style.Dans mon codage de l'expérience, il dépend du contenu de la stratégie dots. Si un seul ou de quelques lignes de code, je préfère la 2ème. Cependant, s'il n'y a plus, je vais utiliser le 1er bloc.
obsolètes en raison des changements apportés aux questions
qui peuvent ne pas être les mêmes puisque le si(b) bloc peut changer la à une.
Si toutes les variables dans les conditions de la constante alors le compilateur peut générer le même code pour éviter supplémentaires et l'exploitation de la seconde variante.
Supplémentaires & est aussi la raison pour laquelle je préfère la première variante.
La première on fait moins de comparaison, car il compare une seule fois, mais la seconde on compare toujours une deux fois, et b et c une fois
Évidemment, si (un) ... alors si b... Vous pouvez la considérer comme la distribution.. a*b + a*c = a*(b+c) ou de l'arbre de construction. oui - non - non oui - non - oui et ainsi de suite. Vous savez que votre logique est bonne quand vous pouvez construire facilement que trois sinon, vous devez repenser votre logique.
Presque qu'ils ne sont pas de Différence dans l'ordre du temps ou tout pense.
La différence entre eux est complètement en rapport à votre architecte de votre code et de votre vision.par exemple, si l'état d'Un répéteur est je vous suggérons d'abord de façon,sinon je préfère un code simple comme deuxième façon parce que c'est facile de lire et continue.et d'autres le développement est Plus enthousiaste à l'idée de vous aider.