Vous pouvez obtenir le même résultat avec des boucles for et while :
Tandis que :
$i = 0;
while ($i <= 10){
print $i."\n";
$i++;
};
Pour :
for ($i = 0; $i <= 10; $i++){
print $i."\n";
}
Mais lequel est le plus rapide ?
Vous pouvez obtenir le même résultat avec des boucles for et while :
Tandis que :
$i = 0;
while ($i <= 10){
print $i."\n";
$i++;
};
Pour :
for ($i = 0; $i <= 10; $i++){
print $i."\n";
}
Mais lequel est le plus rapide ?
La rapidité ne devrait pas avoir d'importance. Si c'est le cas, faites une analyse comparative en utilisant votre vrai code et vous verrez par vous-même.
Les réponses à cette autre question pourraient également être utiles : Comment écrire un code plus efficace
Une boucle "For" n'est-elle pas techniquement une boucle "Do While" ?
Par exemple
for (int i = 0; i < length; ++i)
{
//Code Here.
}
serait...
int i = 0;
do
{
//Code Here.
} while (++i < length);
Je peux me tromper...
Il en va de même pour les boucles "for". Si vous prévoyez de ne récupérer que des données et de ne jamais les modifier, vous devriez utiliser une boucle foreach. Si vous avez besoin des index pour une raison ou une autre, vous devrez les incrémenter et vous devrez donc utiliser la boucle for normale.
for (Data d : data)
{
d.doSomething();
}
devrait être plus rapide que...
for (int i = 0; i < data.length; ++i)
{
data[i].doSomething();
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
9 votes
Mesurez-les si vous le souhaitez (mais ils sont probablement égaux).
5 votes
Je vous parie qu'ils génèrent exactement le même code d'octets.
9 votes
for
dans la plupart des langues est un sucre syntaxique pour un équivalent dewhile
qui est à son tour un sucre syntaxique pour un ensemble d'étiquettes et d'informations.gotos
dans l'assemblage ou l'IL. Compte tenu d'une mise en œuvre efficace de la spécification du langage, ils seront à peu près égaux. Certains langages incluent des "commentaires" internes donnant des indications aux décompilateurs/réflecteurs sur l'aspect du code original, ce qui aura un effet négligeable sur les performances. Je pense que vous constaterez que les plus grandes différences de temps d'exécution sont inhérentes à la programmation du système d'exploitation.13 votes
Il est probablement préférable que vous ne sachiez pas. Si vous utilisez la connaissance d'une possible optimisation prématurée pour influencer votre programmation, en choisissant un code légèrement plus rapide que la conception la plus lisible avant même de savoir si vous avez besoin de cette vitesse, vous échouez.
0 votes
En C : vous pouvez également comparer leur sortie asm :
gcc -S mycsource.c