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 :

implementer un tableau avec une boucle for


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2011
    Messages : 92
    Points : 67
    Points
    67
    Par défaut implementer un tableau avec une boucle for
    Bonjour à tous
    Voila mon problème j'aimerai remplir un tableau grâce à console.readline(); mais dans une boucle do while et quand j'entre une certain mot je sors de la boucle.
    Je crois que c plus simple si je poste le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace Boucle
    {
        class Program
        {
            static void Main(string[] args)
            {
     
                string[] TaxRates = new string[5];
     
                string entry = null;
                do
                {
     
                    for (int i = 0; i < TaxRates.Length; i++)
                    {
                        TaxRates[i] = Console.ReadLine();
                         entry = TaxRates[i];
                        Console.WriteLine(TaxRates[i]);
                    }
                } while (entry != "fini");
     
     
            }
        }
    }

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 147
    Points : 174
    Points
    174
    Par défaut
    bonjour, tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     for (int i = 0; i < TaxRates.Length; i++)
                    {
                        TaxRates[i] = Console.ReadLine();
                         if(taxRates[i]=="fini") break;
                         entry = TaxRates[i];
     
                        Console.WriteLine(TaxRates[i]);
                    }
    L'instruction break te permet de sortir de la boucle

  3. #3
    Membre régulier Avatar de bobjoumi
    Profil pro
    Inscrit en
    Février 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2009
    Messages : 94
    Points : 86
    Points
    86
    Par défaut
    Comme ça shimomura22, tu détecte que si il est le dernier du tableau c'est pas le top

  4. #4
    Membre régulier Avatar de bobjoumi
    Profil pro
    Inscrit en
    Février 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2009
    Messages : 94
    Points : 86
    Points
    86
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
                string[] TaxRates = new string[5];
                string entry = null;
     
                try
                {
                    for (int i = 0; i < TaxRates.Length; i++)
                    {
                        TaxRates[i] = Console.ReadLine();
                        if (TaxRates[i] == "fini")
                        { throw new Exception(TaxRates[i] + " detecté"); }
                        entry = TaxRates[i];
                        Console.WriteLine(TaxRates[i]);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    //////////ce que tu veut ;)
                }

  5. #5
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    J'ai un peu de mal a saisir ce que tu veux faire exactement.

    Ton code force d'entrer 4 chaines (dont certaines peuvent être "fini"), puis soit l'utilisateur entre "fini" en guise de cinquième chaine et tu sors de la boucle en ayant quand même placé "fini" dans le tableau, soit l'utilisateur entre autre chose et tout recommence depuis le début (on luis demande à nouveau 4 chaines, écrasant ce qu'on a déjà lut).

    Le code de davjan permet à l'utilisateur de saisir de 0 à 5 éléments. Il ne place pas "fini" dans le tableau et sort du for avec un break si le mot "fini" est saisi.

    Le code de bobjoumi est semblable à celui de davjan mais il place le mot "fini" dans le tableau. Il permet de sortir de la boucle en tapant "fini" mais par une gestion d'exception, c'est bien lourd comme méthode.

    Du coup, que veux-tu faire exactement ?
    Faire un tableau d'exactement 5 éléments ? Ou faut-il être plus flexible (plus ou moins d'éléments) ?
    Le mot "fini" doit-il être dans le tableau ou non ?

    Si tu veux être flexible et ne pas placer "fini" dans le tableau il y a cette solution :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    List<string> TaxRates = new List<string>();
    string entry;
    while(string.Compare((entry = Console.ReadLine()), "fini", true) != 0)
        TaxRates.Add(entry);

    Ici, on lit l'entrée utilisateur autant de fois qu'il le faut, jusqu'a ce qu'il saisisse "fini", sans prendre garde à la casse (il peut taper "fini", "FINI" ou encore "Fini").
    Sorti de la boucle TaxRates contient tout ce qu'a pu entrer l'utilisateur, sauf le mot "fini".
    Il n'y a ici pas de break ni d'exception. C'est une sortie de boucle tout ce qu'il y a de plus normale.

  6. #6
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2011
    Messages : 92
    Points : 67
    Points
    67
    Par défaut
    Au fait la taille du tableau doit être dynamique il se remplit au fur et à mesure que l'on entre des données via console.readlines() et dés qu'on entre "fini" il sort de la boucle

  7. #7
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2011
    Messages : 92
    Points : 67
    Points
    67
    Par défaut
    Où alors je voudrais savoir si il est possible d'initialiser un tableau à taille inconnue qui se remplira au fur et à mesure que j'encoderai des données dans console.readlines() ...... et une fois que j'entre "fini" je lui demande de sortir de la boucle do while et ainsi j'ai un tableau crée avec ttes les données que j'ai encodées

  8. #8
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Citation Envoyé par shimomura22 Voir le message
    un tableau à taille inconnue ...
    List<string> !!!

  9. #9
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2011
    Messages : 92
    Points : 67
    Points
    67
    Par défaut
    tu pourrais me donner un exemple stp juste un bout de code pour que je m'y retrouve. Merci

  10. #10
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Ben l'exemple de ctxnop utilise un List<string>...

  11. #11
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2011
    Messages : 92
    Points : 67
    Points
    67
    Par défaut
    Mais comment je recupere et affiche les données entré au clavier?

  12. #12
    Membre du Club
    Homme Profil pro
    informatique de gestion
    Inscrit en
    Janvier 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : informatique de gestion

    Informations forums :
    Inscription : Janvier 2011
    Messages : 92
    Points : 67
    Points
    67
    Par défaut
    Merci à tous je peaufine mon code et qd je le termine je le poste pour vos commentaires

  13. #13
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Citation Envoyé par shimomura22 Voir le message
    Mais comment je recupere et affiche les données entré au clavier?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while(string.Compare((entry = Console.ReadLine()), "fini", true) != 0)
    {
        TaxRates.Add(entry);
        Console.WriteLine(entry);
    }

  14. #14
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Le Console.WriteLine est un peu superflu je trouve. Dans la mesure où ca ré-écrit dans la sortie ce que l'on vient de taper et qui est donc déjà affiché juste au dessus.

  15. #15
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Citation Envoyé par ctxnop Voir le message
    Le Console.WriteLine est un peu superflu je trouve. Dans la mesure où ca ré-écrit dans la sortie ce que l'on vient de taper et qui est donc déjà affiché juste au dessus.
    Tout à fait d'accord avec toi... Mais c'est tellement plus beau quand c'est inutile

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [labview 8.6]Probleme avec un tableau et une boucle FOR
    Par alexandredu34 dans le forum LabVIEW
    Réponses: 1
    Dernier message: 14/06/2009, 18h32
  2. Présentation d'un tableau avec une boucle for()
    Par Jarodd dans le forum Langage
    Réponses: 2
    Dernier message: 19/12/2008, 11h39
  3. [PHP 5.0] Complèter un tableau avec une boucle "for"
    Par kriekbellevue dans le forum Langage
    Réponses: 1
    Dernier message: 07/12/2008, 22h04
  4. Incrémentation dynamique d'un textbox avec une boucle for
    Par Etanne dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/03/2006, 15h17
  5. : remplir des zones de texte avec une boucle For
    Par Haro_GSD dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 21h23

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