[Compilateur] boucle C++, Java
Bonjour à tous,
Je suis tomber sur un post dans la section Java, il parle de la declaration en debut de boucle, voici la discussion:
http://www.developpez.net/forums/sho...d.php?t=191806
Et ben en fait du coup je me pose la question en ce qui concerne C et C++.
C'est pareil?
Petit exemple:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
1)
CMaClasse* pVar;
while(test)
{
pVar = fonction_qui_renvoit_un_pointeur_CMaClasse();
// code
}
Et
2)
while(test)
{
CMaClasse* pVar = fonction_qui_renvoit_un_pointeur_CMaClasse();
// code
} |
En java ils disent que le 2eme code est mieux.
Qu'en pensez-vous?
Chacun voit midi à sa porte
Selon moi, il s'agit d'être très critique par rapport aux conseils qui veulent faire croire que "c'est mieux de faire ainsi que comme cela"...
AMHA, il manque toujours deux parties de phrases commençant respectivement par "si..."(ou "dans le cas de ...") et par "et sinon ..."
En effet, pour chaque cas "en faveur de", il est possible de trouver un cas pour lequel, justement, il sera préférable "de ne pas"...
Prenons, par exemple le cas des "ruptures" (boucles imbriquées) pour lequel il me parraitrait aberrant de suivre le conseil...
Prenons aussi tous les cas où, une fois sorti de la boucle, la dernière valeur récupérée devrait être réutilisée ailleurs (un exemple tout bete: les opérateurs de flux)
Je ne dis absolument pas, comprenons nous bien, que ce conseil ne vaut rien... Je dis juste qu'il faut faire preuve de la plus grande attention avant de l'appliquer.
Un autre exemple, basé sur une chaine de caractères (std::string):
Il parrait beaucoup plus opportun de créer une boucle du genre de
Code:
1 2 3 4 5 6 7 8
|
int taille;
taille=chaine.size();
while(taille>0)
{
//le code
--taille;
} |
Ou taille serait utilisé pour autre chose que pour déterminer s'il faut sortir de la boucle, que de créer un code qui déclarerait une variable locale à la boucle, et initialisée sur la taille actuelle
Le problème ne se situant pas au niveau de la création de la variable, mais bel et bien au niveau du décompte de la taille qui serait nécessaire pour chaque itération...