Il est également généralement recommandé d'utiliser "i" après avoir quitté la boucle dans la plupart des normes de codage que j'ai lues. En particulier ne PAS faire:
for(i = 0; i < num_elements; i++)
{
if(element[i].id == id)
{
/* Do something to element here. */
break;
}
}
if(i == num_elements)
{
fprintf(stderr, "Failed to find element %d.", id);
succeeded == false;
}
Bien que cela fonctionne, c'est un mauvais codage. Il est moins lisible et maintenable que les alternatives. Par exemple.
succeeded = false;
for(i = 0; i < num_elements; i++)
{
if(element[i].id == id)
{
/* Do something to element here. */
succeeded = true;
break;
}
}
if(false == succeeded)
{
fprintf(stderr, "Failed to find element %d.", id);
}
Err, quoi? Il a demandé "Est-ce que c'est le cas ou est-ce B?". Une telle question ne peut pas être satisfaite simplement par "Oui" ou "Non". Il a également déclaré sa variable en dehors du bloc. Je ne trouve pas cette réponse pertinente ou nécessaire (car elle n'ajoute aucune nouvelle information non déjà contenue dans les réponses précédentes). – AlastairG
Oui, vous avez raison. Je réponds simplement 'oui' parce que quelqu'un a déjà expliqué pourquoi je suis préservé (la réponse de Visage était la meilleure). Je pensais que l'ajout de cet exemple pourrait être utile pour compléter d'autres réponses. =) – BlackBear