Condition "si" et un calcul
Zylba
-
nicocorico Messages postés 846 Statut Membre -
nicocorico Messages postés 846 Statut Membre -
Bonjour,
Je voudrais savoir même si cela est minime,
Un calcul est-il plus long qu'une vérification de condition ?
Je ne sais pas si je suis très clair, mais en exemple ça donnerai :
Est-ce que 15*3=x est-il plus long qu'un Si x==45 ??
Merci.
Je voudrais savoir même si cela est minime,
Un calcul est-il plus long qu'une vérification de condition ?
Je ne sais pas si je suis très clair, mais en exemple ça donnerai :
Est-ce que 15*3=x est-il plus long qu'un Si x==45 ??
Merci.
A voir également:
- Condition "si" et un calcul
- Excel cellule couleur si condition texte - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
- Calcul moyenne excel - Guide
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
4 réponses
Tu fait deux opérations complétement différente : l'un correspond a une mise en mémoire et l'autre a un test sur quelque chose qui est déja en mémoire.
En gros : 15*3=x --> X = 15 * 3 donc X = 45 ( Mise en mémoire de la variable X )
x==45 --> donc si X == 45 la condition est validée ( Test de la valeur de la variable X qui a été précédemment mise en mémoire )
En gros : 15*3=x --> X = 15 * 3 donc X = 45 ( Mise en mémoire de la variable X )
x==45 --> donc si X == 45 la condition est validée ( Test de la valeur de la variable X qui a été précédemment mise en mémoire )
Hé bien, dans le cas des constantes le compilateur fait les calculs lui-même et ne laisse que les résultats dans le programme, donc dans ce cas précis ça revient au même!
Je suis au courant de cela mais lequel est le plus long à traiter pour l'ordinateur ?
Le cpu n'est pas qu'une grosse calculette, c'est aussi un gros comparateur! Il est également très optimisé pour cette fonction! En fait les cpu ont une architecture très complexe pour optimiser différentes opérations, et toutes ces opérations de base, massivement présentes dans les programmes, sont les premières concernées par ces optimisations...
Salut!
En fait, cela dépend de comment tu effectues ton test et ton calcul.
Par exemple, si tu compares "int x = 15*3" et "if(x==15*3)", le if prendra plus de temps car le calcul est d'abord effectué, puis stocké, puis comparé (une opération de plus)
Par contre, si tu compares "int x = 15*3" et "if(x==45)" le if prendra moins de temps car il y a juste 2 opérations effectuées: assignation et comparaison
;-)
En fait, cela dépend de comment tu effectues ton test et ton calcul.
Par exemple, si tu compares "int x = 15*3" et "if(x==15*3)", le if prendra plus de temps car le calcul est d'abord effectué, puis stocké, puis comparé (une opération de plus)
Par contre, si tu compares "int x = 15*3" et "if(x==45)" le if prendra moins de temps car il y a juste 2 opérations effectuées: assignation et comparaison
;-)
Merci pour ce complément d'information, cependant, le calcul est en fait effectué par le compilateur... il n'y a aucune raison de ne pas calculer directement le 15*3 et d'en revenir au même qu'en écrivant 45 dans le programme. Et ça a le mérite de permettre d'écrire certaines constantes avec des valeurs décomposées souvent plus représentatives pour le programmeur, sans sanctionner la vitesse d'exécution!
Et pour info, le processeur travaille prioritairement avec ses registres, donc il n'aurait pas besoin de stocker la valeur avant de la comparer.
Et pour info, le processeur travaille prioritairement avec ses registres, donc il n'aurait pas besoin de stocker la valeur avant de la comparer.