le 11-08-2013 03:00 AM
Salut à tous,
J’ai un petit souci qui me laisse perplexe…
Voici deux situations qui semblent normalement similaires. Il devrait se produire le même résultat.
Hors le cas avec la while marche et le cas avec la for non !?
Encore plus étrange quant je mets une sonde dans la for celle-ci ne ce mets « Pas d’exécution » alors que le tableau pilote lui commande bien quelques tours.
Juste pour info, mais je pense que cela n’a pas d’incidence direct, je suis dans le cas d’un vi polymorphe.
Merci de votre aide
Résolu ! Accéder à la solution.
le 11-08-2013 03:06 AM
Bonjour,
La boucle For ne s'execute pas forcement le nombre d efois que tu crois, elle s'execute le nombre de fois MINIMUM entre les autoindexation et le "terminal N". Si la boucle ne s'execute pas je pense que tu as passé un pableau vide quelque part.
Cordialement
11-08-2013 03:15 AM - modifié 11-08-2013 03:16 AM
Attention ! (réflexion à chaud, en 3sec)
Dans ta boucle FOR le nombre d'itérations est défini par :
la valeur sur le terminal "N"
ou
le nombre d'éléments contenus dans le plus petit de tes Tableaux d'entrée.
Des deux, c'est le plus petit qui pilotera ta FOR.
Autrement dit, si en entrée, tu as :
N = 20 ... et parmis tous tes Tableaux d'entrée, un qui n'a que 3 éléments,
ta FOR ne fera que 3 itérations.
Si en entrée tu as au moins un Tableau "vide" ... ta FOR ne s'exécutera pas.
Tes Tableaux ont-ils tous le même nombre d'éléments ...
égal à celui sur lequel tu prélèves ton "size of array" pour piloter N ?
EDIT :
désolé Rodéric, nous avons posté ensemble (je n'ai pas vu ton message avant de poster)
11-08-2013 03:42 AM - modifié 11-08-2013 03:45 AM
Mes tableaux n'étant pas de la même taille, j'ai mis un tableau "pilote" sur le terminal N, histoire que ça tourne comme je le souhaite.
Ce que je n'avais pas connaissance jusqu'alors, c'est malgré un nombre imposé sur le terminal N, en cas de tableau vide à l'entrée d’une boucle for celle-ci ne s'exécute pas.
Merci les gars pour la rapidité de vos réponses, vous avez vue juste tous les deux !
PS : je prends la réponse d'Ouadji comme solution car elle est un peu plus détaillée...
11-08-2013 03:53 AM - modifié 11-08-2013 03:54 AM
Ah oui, encore juste une question du coup, sans vouloir abuser, que ce passe-t-il excatement comme réaction en cas de « déséquilibre » des tableaux a l’entrée dans une for ou dans une while ? Comme Pierre le suggère dans sa question. (Tes Tableaux ont-ils tous le même nombre d'éléments ...)
le 11-08-2013 04:10 AM
Des essais que je viens de faire je constate.
Pour la for :
La boucle s’arrête d’elle même dès que l’un des éléments ce présente vide lors de l’exécution.
Pour la while :
Elle ignore simplement l’entrée vide et continue de s’exécuté.
J'ai oublié quelque chose ?
le 11-08-2013 04:45 AM
Non c'est bien sa, avec la while tu as la valeur par défaut.
En effet, Ouadji a plus détaillé, mais j'avais raison pour le tableau vide ![]()
A+ bon codage!