59 votes

Quelle est la syntaxe complète de la boucle "for" en C ?

J'ai vu des choses très bizarres for boucles en lisant le code d'autres personnes. J'ai essayé de trouver une explication complète de la syntaxe de l'option for boucle en C mais c'est très difficile car le mot "for" apparaît dans des phrases sans rapport entre elles, ce qui rend la recherche presque impossible à effectuer efficacement.

Cette question m'est venue à l'esprit après avoir lu ce fil ce qui m'a rendu à nouveau curieux.

Le site for ici :

for(p=0;p+=(a&1)*b,a!=1;a>>=1,b<<=1);

Dans la condition du milieu, il y a une virgule qui sépare les deux morceaux de code, à quoi sert cette virgule ? La virgule du côté droit, je la comprends car elle fait que les deux parties du code sont séparées par une virgule. a>>=1 et b<<=1 .

Mais dans une condition de sortie de boucle, que se passe-t-il ? Est-ce qu'elle sort quand p==0 quand a==1 ou quand les deux se produisent ?

Ce serait formidable si quelqu'un pouvait m'aider à comprendre ce problème et peut-être m'indiquer la direction d'un système complet de gestion de l'eau. for description de la syntaxe de la boucle.

0 votes

@Jesus -- Tu as corrigé "kinda" en "kind of", "coma" en "virgule", mis une majuscule à "I" et "Does" mais laissé "ppl" pour "people" ?

0 votes

J'ai corrigé quelques erreurs. Le message est beaucoup mieux présenté maintenant. Question intéressante.

0voto

Bob Points 1

Konrad a mentionné le point clé que j'aimerais répéter : la valeur de l'expression la plus à droite est la valeur de l'expression globale.

Un compilateur Gnu a émis cet avertissement lorsque j'ai placé deux tests dans la section "condition" de la boucle for

warning: left-hand operand of comma expression has no effect

Ce que je voulais vraiment pour la "condition" était deux tests avec un "&&" entre les deux. Selon la déclaration de Konrad, seul le test à droite de la virgule affecterait la condition.

-1voto

R.M.VIVEK ARNI Points 1

La boucle for est exécutée pour un temps particulier for(; ;)

le syntex for for loop

pour(; ;)

OU

pour (initialisateur ; condition ; compteur)

par exemple (rmv=1;rmv<=15;rmv++)

exécution à 15 fois par bloc

1.d'abord initialiser la valeur parce que démarrer la valeur

(par exemple)rmv=1 ou rmv=2

2.la deuxième déclaration est le test de la condition est vrai ou faux, la condition vrai n'exécute pas la boucle for et la condition est faux termine le bloc for,

par exemple i=5;i<=10 la condition est vraie

i=10;i<10 the condition is false terminate for block,

3.troisièmement, l'incrémentation ou la décrémentation

(par exemple)rmv++ ou ++rmv

Prograide.com

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.

Powered by:

X