IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Boucle FOR à éviter, mythe ou réalité ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut Boucle FOR à éviter, mythe ou réalité ?
    Bonjour,
    j'entends souvent dire qu'il faut éviter d'utiliser des boucles FOR. Est-ce un mythe ? Est-ce justifié ?

    Je me dis qu'étant donnés les chemins complexes pris par un compilateur, dire que l'utilisation de boucles FOR est à éviter me parait très expéditif comme conseil.

    N'étant pas expert en la matière, je me tourne vers vous...

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par défaut
    Bonjour,

    Décidément, ce week-end, c'est le festival du troll. :-)

    Ou as-tu entendu dire que les boucle for sont à éviter ? C'est au contraire la structure la plus utilisée avec while. Que faudrait-il utiliser à la place ?

  3. #3
    Membre Expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Par défaut
    Ca n'est ni conseillé ni déconseillé... enfin c'est un mot du langage quoi...

    Bref, là où il a un intérêt supérieur au while, c'est sur certains compilos en cas de parallélisation !
    Mais en dehors de ça... for ou while c'est quasiment pareil... question d'habitude (perso je suis plus sur while que for).
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par défaut
    Citation Envoyé par Metalman Voir le message
    Bref, là où il a un intérêt supérieur au while, c'est sur certains compilos en cas de parallélisation !
    Mais en dehors de ça... for ou while c'est quasiment pareil... question d'habitude (perso je suis plus sur while que for).
    En fait, là encore, c'est une question de sémantique. « for » signifie « pour », et sert initialement à exprimer les expressions de type somme « Σ » ou produit « Π » avec leur indice.

    Une caractéristique de for() par rapport à while et do…while est que la post-condition est toujours évaluée même si on a abrégé le cycle en cours avec continue.

  5. #5
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    for et while sont deux mots-cles qui te permettent d'ecrire des boucles. Le plus souvent, il est conseille d'utiliser for lorsqu'on connait le nombre (probable) d'iterations, et while lorsque celui-ci est inconnu (et do-while si on est certain de vouloir faire au moins un passage dans la boucle).

    Par exemple :
    (Re-)initialisation d'un tableau --> for (compteur = 0 ; compteur < taille_tableau ; compteur++)...
    (Re-)initialisation d'une liste chainee : while (pointeur_sur_liste != NULL) ...


    Apres, je ne vois vraiment aucune raison de ne pas utiliser les boucles for.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  6. #6
    Membre Expert Avatar de Cirrus Minor
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2014
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2014
    Messages : 953
    Par défaut
    Lors d'une mission, mon chef de projet m'avait interdit l'usage d'autres boucles que la for. Il m'a tout simplement demandé de changer toutes mes while en for.

    Bon, c'était un psychopathe... Il m'avait même écrit un ticket de bug parce que... j'avais fait une faute d'orthographe dans un commentaire de code en anglais !

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/08/2012, 16h41
  2. [Débutant] éviter boucle for
    Par Luis Vieira da Silva dans le forum MATLAB
    Réponses: 3
    Dernier message: 18/01/2010, 22h09
  3. Boucle for pour éviter la redondance de code
    Par zaza85270 dans le forum Langage
    Réponses: 15
    Dernier message: 10/11/2008, 16h19
  4. [Swing][boucles] for, do, if .....comment faire simple?
    Par chastel dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 02/05/2004, 22h49
  5. [langage] boucle "for" modification du pas
    Par K-ZimiR dans le forum Langage
    Réponses: 4
    Dernier message: 29/04/2004, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo