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 :

Instruction While [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Par défaut Instruction While
    Bonjour à tous,

    je débute en c#. Je test l'instruction WHile. J'ai donc fait un petit jeu qui demande de trouver un nombre.

    Mon code est le suivant. J'ai comme message d'erreur " ; attendu " je ne vois pas trop de quoi il s'agit.

    Merci pour votre aide

    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
    31
    32
    33
    34
    35
    36
    37
    38
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace While
    {
        class Program
        {
     
            static void Main(string[] args)
            {
                int nombreADeviner = 65;
                int reponse;
                While(reponse != nombreADeviner)
                {
                    Console.WriteLine("Veuillez entrer un nombre < 100 : ");
                    int reponse = Console.ReadLine();
     
                    switch(reponse)
                    {
                        case reponse<nombreADeviner :
                            Console.WriteLine("Le nombre à rechercher est plus élevé");
                            break;
     
                        case reponse>nombreADeviner :
                            Console.WriteLine("Le nombre à rechercher est moins élevé");
                            break;
     
                        default : 
                            Console.WriteLine("Bravo vous avez découvert le nombre : " +nombreADeviner);
                            break;
                    }
                }
            }
        }
    }

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 90
    Par défaut
    Ton nom d'espace (NameSpace) est While. Le compilateur-interpréteur pense que c'est un mot clé (c'est d'ailleurs pourquoi il est en bleu). Change ton namespace et tu devrais voir ton erreur disparaître. (la couleur du namespace doit etre noir avec les préférences par défaut.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 72
    Par défaut
    L'instruction "while" ne prend pas de majuscule.
    Il apparait ici en bleu comme un mot clé car c'est le nom de ton namespace.

  4. #4
    Membre éclairé
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Par défaut
    Merci pour vos réponses à tous les deux. Je n'ai effectivement plus cet message par contre il semble que j'ai un soucis de conversion de type 'bool' en 'int'. C'est sans doute dû à mon int reponse = Console.ReadLine();

    Je n'ai pas encore trouvé d'autre moyen dans les tutoriaux que je consulte pour lire une réponse utilisateur.

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    C'est ton switch qui est mal utilisé!
    Je te suggère de regarder attentivement comment fonctionne un switch.

  6. #6
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    C'est ton switch/case qui n'est pas bon à mon avis. D'un point de vue syntaxique, ça me semble totalement incorrect.
    Alors que la syntaxe de ton while en elle-même est bonne.

    Dans ton cas un switch/case n'a pas grand intérêt. Je te suggère plutôt ceci :
    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
    31
    32
    33
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace While
    {
        class Program
        {
     
            static void Main(string[] args)
            {
                int nombreADeviner = 65;
                int reponse;
                While(reponse != nombreADeviner)
                {
                    Console.WriteLine("Veuillez entrer un nombre < 100 : ");
                    int reponse = Console.ReadLine();
     
                    if(reponse<nombreADeviner) {
                            Console.WriteLine("Le nombre à rechercher est plus élevé");
                    }
                    else if(reponse>nombreADeviner) {
                            Console.WriteLine("Le nombre à rechercher est moins élevé");
                    }
                    else {
                            Console.WriteLine("Bravo vous avez découvert le nombre : " +nombreADeviner);
                    }
                }
            }
        }
    }

  7. #7
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Dernier problème : Console.ReadLine() renvoie une chaîne. Je ne crois pas qu'il existe d'opérateur implicite de conversion vers un entier.

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 72
    Par défaut
    Autre problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int reponse = Console.ReadLine();
    - La variable reponse est déjà déclarée (enlève le int)
    - ReadLine te retourne un string donc il faut que tu le convertisses en int (int.TryParse / int.Parse)

  9. #9
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Citation Envoyé par Morgan7469 Voir le message
    - ReadLine te retourne un string donc il faut que tu le convertisses en int (int.TryParse / int.Parse)
    A condition que l'utilisateur saisisse uniquement un nombre...

  10. #10
    Membre éclairé
    Profil pro
    IT Développeur
    Inscrit en
    Mars 2009
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Développeur

    Informations forums :
    Inscription : Mars 2009
    Messages : 274
    Par défaut
    Bon... apparement ce n'est pas encore ça.

    J'ai essayé les différentes propositions faites par chacun mais j'ai toujours un problème de conversion de type

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace TestWhile
    {
        class Program
        {
           static void Main(string[] args)
            {
                int nombreADeviner = 65;
                int reponse;
                int result;
     
               while(reponse != nombreADeviner)
                {
                    Console.WriteLine("Veuillez entrer un nombre < 100 : ");
                    reponse = Console.ReadLine();
                    int.TryParse(reponse, out result);
     
     
                        if(reponse<nombreADeviner)
                        {
                            Console.WriteLine("Le nombre à rechercher est plus élevé");
                        }
     
                        else if (reponse>nombreADeviner)
                        {
                            Console.WriteLine("Le nombre à rechercher est moins élevé");
                        }
     
                        else
                        {
                            Console.WriteLine("Bravo vous avez découvert le nombre : " +nombreADeviner);
                        }
                 }
                }
     
     
            }
        }

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

Discussions similaires

  1. instruction while et tableau de valeurs
    Par Sh4dow49 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 16/07/2009, 15h32
  2. Instructions While / switch imbriquées
    Par countrycrisp dans le forum Débuter
    Réponses: 3
    Dernier message: 21/08/2008, 14h33
  3. Comprendre l'instruction WHILE.
    Par pcsystemd dans le forum Général Python
    Réponses: 13
    Dernier message: 01/03/2008, 02h17
  4. Comprendre l'instruction do while
    Par romi36 dans le forum VBScript
    Réponses: 4
    Dernier message: 19/07/2007, 07h12
  5. Réponses: 1
    Dernier message: 19/03/2007, 22h15

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