Que fait une boucle for sans accolades?

Bonjour donc ma question est la suivante: que fait une boucle for sans accolades? Donc, d’après ce que je sais, lors d’une instruction if, seule la première ligne du code est exécutée. Donc, dans une boucle for, comment ça marche? Je ne comprends pas vraiment le concept de boucle sans accolades et sans accolades. Je suppose qu’une explication avec un morceau de code serait utile. C’est en C au fait. Voici un code que j’ai examiné comme 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’ya pas d’accolade, donc je suppose qu’il va continuer à itérer la première déclaration jusqu’à ce que i <5 et que i ne soit pas inférieur à 5, il ne fasse rien, mais lorsque j’ai testé la Je comprends que le code finit par imprimer l’instruction printf. Je pensais qu'une boucle sans accolades n'exécutait que la première ligne de code? Ou suis-je manque quelque chose ici.

Sans accolades, seule la première instruction suivant la définition de la boucle est considérée comme appartenant au corps de la boucle.

Notez que dans votre exemple, printf n’est appelé qu’une fois. Bien que son retrait corresponde à la ligne précédente, il s’agit d’un fouillis rouge – C ne s’en soucie pas. Cela me dit que quiconque a écrit le code a probablement oublié les accolades et voulait que l’instruction printf fasse partie du corps de la boucle.

La seule fois où je voudrais laisser de côté les accolades est lorsque vous écrivez une déclaration if une ligne:

 if (condition) statement; do_something_else(); 

Ici, il n’y a pas d’indentation pour introduire une ambiguïté sur le fait de savoir si l’énoncé de la deuxième ligne est censé appartenir au corps du if . En lisant ceci, vous serez probablement plus confiant que cela fonctionnera comme prévu.

Si la boucle for n’a pas d’accolades, la prochaine instruction sera exécutée. La syntaxe est essentiellement

 for (;;) ; 

La partie “déclaration” peut être n’importe quoi. Ce pourrait être un simple compte ++; ou bien ce pourrait être une instruction ‘if’ / ‘if-else’, il pourrait même s’agir d’une autre boucle for, sans les accolades!

Donc, dans ce cas, le code est similaire à:

 for (i = 0; i < 5; i++) { count++; } printf("The value of count is: %d\n", count);