Syntaxe C

Bonjour,
En "dépiautant" un programme pour Arduino, je suis tombé sur une boucle for du style :

int test = 10;
for(int dummy = 0; dummy < 8; dummy++, test++){
  Serial.print(i);
  Serial.print("-");
  Serial.println(test);
}

Le résultat de cette boucle ne me pose pas de problème.
Je souhaiterai savoir s'il existe d'autres formes d'écriture de ce type dans le monde C ?
Merci
[edit]Pour ceux qui n'ont pas vu la subtilité d'écriture ce trouve ici : ; dummy++, test++)

salut icare,
y a la boucle while aussi

si je ne me trompe pas ca doit donner ca

int test = 10;
int dummy = test;
while( dummy < test){
  Serial.print(dummy);
dummy--;
}

Salut infobarquee,

infobarquee:
si je ne me trompe pas ca doit donner ca

int test = 10;

int dummy = test;
while( dummy < test){
 Serial.print(dummy);
dummy--;
}

La boucle est exécutée si dummy < test comme dummy = test, elle n'affichera pas dummy dans le moniteur série ou bien il faut déplacer la paranthèse. :wink:

oups erreur

int test = 10;
int dummy = 0;
while( dummy < test){
  Serial.print(dummy);
dummy++;
}

:smiling_imp:

Bonjour,
Personne n'a des informations sur les syntaxes un peu exotique ?

Ces syntaxes-là n'ont rien d'exotique !

Bonjour Xavier,
Merci pour cette précision.
Alors où peut-on trouver une documentation sur les différentes variantes possibles ?

icare:
Bonjour Xavier,
Merci pour cette précision.
Alors où peut-on trouver une documentation sur les différentes variantes possibles ?

sur internet :slight_smile:
suis loiiiiinnnnnnnnnnnnnnnnnnnnnnn héhéhéhéhé

Dans la documentation de la norme ANSI C :wink:

Ou encore "The C Programing Language" de Kernighan et Ritchie

Re,

XavierMiller:
Ou encore "The C Programing Language" de Kernighan et Ritchie

Merci, je vais donc remonter à la "source" :wink:

Effectivement, ton FOR ne me surprends pas du tout, mais c'est parce que j'avais déjà vu ça quelque part, en fait, dans le FOR, tu peux coder tout un tas de choses, comme par exemple :

byte toto = 0x80;
for (int i = 0; i < 1; toto>>1){
  if (toto == 1) i = toto;
}

toto>>1 est une instruction qui à première vue n'a rien à voir avec i, mais ça marche. tu peux aussi mettre un programme de 100 lignes à la place dans les parenthèses, ça passe aussi. Ca n'a absolument aucun intérêt, puisque tes 100 lignes, tu les mettrais au début de la boucle, ça ferait la même chose

for (int i = 0; i < 10;){
  i--;
  trucsàfaire();
}

marche très bien aussi (à la syntaxe du point-virgule près).

Bonsoir Super_Cinci,
Merci pour ces précisions.
Après essai, on peut également plusieurs termes dans les autres positions de la boucle et cela fonctionne.
Je suis ok avec toi et cela ne facilite pas forcément la lecture.
@+