Ce qui fait une boucle sans accolades faire?
Salut donc en gros ma question est: que fait une boucle sans accolades autour d'elle? Donc, à partir de ce que je sais, qu'au cours d'une si-déclaration de la première ligne de code est exécuté. Donc dans une boucle for comment ça fonctionne? Je ne comprends vraiment pas le concept d'une boucle sans les accolades et les crochets. Je crois qu'une explication avec un morceau de code pourrait l'aider. C'est dans C, par la manière. Voici un code que j'ai été regarder comme une référence.
int main(int argc, char* argv[])
{
int i;
int count = 0;
for (i = 0; i < 5; i++)
count++;
printf("The value of count is: %d\n", count);
return 0;
}
Dans ce cas, je vois qu'il n'y a pas d'accolades, donc je suis en supposant qu'il n'aura de cesse de l'itération de la première déclaration jusqu'à ce que i < 5 et une fois que j'ai n'est pas moins de 5 il ne fait rien, mais quand j'ai testé le code que j'ai qu'il s'achève aussi l'impression de l'instruction printf. J'ai pensé qu'une boucle sans accolades exécutée uniquement la première ligne de code? Ou ai-je raté quelque chose ici.
- Je sais qu'il existe un double de cette, ne peut tout simplement pas à le trouver...
- Ce qui se passe lorsque vous compilez et exécutez-il? Qu'advient-il si vous ajoutez ensuite une accolade d'ouverture après la
for
et une fermeture l'un après l'printf
? Il semble qu'environ 30 secondes d'effort de répondre à cette question, et il serait beaucoup plus rapide (et plus pédagogique) que de l'affichage ici et attend une réponse. Il n'y a absolument rien de dangereux dans ce code qui vous empêche de faire un peu d'effort vous-même. - J'ai déjà essayé une recherche avant j'ai posé la question, mais je ne pouvais pas trouver quelque chose comme ce que j'essayais de demander
- J'ai en fait essayé ce déjà et il a eu une sortie qui avait la valeur de compteur à 5 et imprimé, mais je voulais confirmer si c'est toujours appliquée, et comment il fonctionne
- Double Possible de Quand puis-je omettre les accolades en C?
Vous devez vous connecter pour publier un commentaire.
Sans accolades, seule la première instruction qui suit la boucle définition est considéré comme appartenant au corps de boucle.
Avis que, dans votre exemple,
printf
n'est appelée qu'une seule fois. Bien que sa mise en retrait correspond à la ligne précédente, c'est un hareng rouge – C n'a pas de soins. Ce qu'il dit pour moi, c'est que celui qui a écrit le code a probablement oublié les accolades, et prévu laprintf
déclaration à faire partie du corps de la boucle.La seule fois où je laisserais les accolades est lors de l'écriture d'une ligne de
if
déclaration:Ici, il n'y a pas d'indentation à introduire de l'ambiguïté quant à savoir si la déclaration sur la deuxième ligne est censée appartenir au corps de la
if
. Vous seriez probablement plus à l'aise lorsque la lecture de ce qu'il fonctionne comme prévu.do ... while
est maladroit comme il faut un point-virgule après le corps de la déclaration et de l'état.Si la boucle for n'a pas les accolades, il exécute l'instruction suivante.
La syntaxe est essentiellement
La "déclaration" de la partie peut être n'importe quoi. Il pourrait être un simple count++; ou il pourrait être un 'if'/'if-else' instruction, il pourrait même être une autre boucle for sans les accolades!
Donc dans ce cas, le code est similaire à: