Plus que débutant (niveau ignare) je bute sur cette instruction: for (--pos; a[pos] == 0; --pos);. Quelqu'un pourrait-il m'aider?
Merci d'avance.
 Instruction For incompréhensible.
 Instruction For incompréhensible.
				
				
						
						
				Plus que débutant (niveau ignare) je bute sur cette instruction: for (--pos; a[pos] == 0; --pos);. Quelqu'un pourrait-il m'aider?
Merci d'avance.
 
 
				
				
						
						
				Salut,
un for est une structure de contrôle assez simple, elle se décompose en trois parties séparées par des points-virgules :
- instruction d'initialisation (exécutée à la première entrée dans la boucle),
- condition(s) de bouclage (si l'instruction renvoie faux on sort de la boucle),
- instruction(s) itérative(s) (exécutée(s) à chaque passage dans la boucle).
Un for peut comporter un block de code (entre accolades) exécuté à chaque itération.
S'il n'en a pas il est suivi d'un point-virgule.
Avec ça tu devrais comprendre la ligne que tu nous présentes.
 
 
				
				
						
						
				Hello,
a est un tableau, pos est un index pour le parcourir. Cette boucle apparait surement dans un contexte proche deAu final cette boucle recherche l'index du premier élément différent de 0, en partant de la fin (et seg fault si le tableau ne contient que des 0).
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
Ca peut se réécrire (plus explicite, mais syntaxe plus compliquée)
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
 
 
				
				
						
						
				std::find_if (prend un prédicat) et non std::find (qui prend une valeur).
(Personnellement, j'utilise size_t pour les indices (mais il faut faire attention si on compte faire des "reverse" boucle avec).)
Partager