Je suis enclin à " syndrome du "si" conditionnel "Ce qui signifie que j'ai tendance à utiliser les conditions if tout le temps. J'utilise rarement l'opérateur ternaire. Par exemple :
//I like to do this:
int a;
if (i == 0)
{
a = 10;
}
else
{
a = 5;
}
//When I could do this:
int a = (i == 0) ? 10:5;
Est-ce important de savoir lequel j'utilise ? Lequel est le plus rapide ? Y a-t-il des différences de performances notables ? Est-il préférable d'utiliser le code le plus court lorsque cela est possible ?
4 votes
Cela n'a pas d'importance et vous devriez plutôt vous préoccuper de la propreté du code que des performances. Dans ce cas, je pense que l'opérateur ternaire est simplement plus propre.
3 votes
Aussi, vous pouvez le faire comme ceci
if(i == 0) a = 10; else a = 5;
17 votes
L'optimisation prématurée sans profilage montrant un besoin précis est mauvaise, mauvaise, mauvaise. Utilisez le code que votre futur moi comprendra le mieux dans 6 mois.
2 votes
Je suis d'accord avec @Niklas, mais si vous vraiment si vous n'aimez pas l'opérateur ternaire et que vous ne vous souciez pas des différences de performances vraiment triviales, vous pourriez initialiser la variable à la valeur par défaut (vraisemblablement 5), et n'utiliser qu'un "if" sans "else" pour la réaffecter.
5 votes
@Hovercraft : Vous-même et vos collègues, on est tenté d'ajouter ici.
0 votes
Il existe quelques rares cas où l'opérateur ternaire compile une séquence de code sans branches. Mais dans la plupart des cas, il n'y a pas de différence de performance (ou si c'est le cas, elle est négligeable). Utilisez ce qui est le plus facile à comprendre et ce qui rend la logique de votre programme plus claire.
1 votes
IMHO l'opérateur ternaire est horrible !