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 :

programme qui se ferme trop tot


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    veux s'instruire
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : veux s'instruire

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Par défaut programme qui se ferme trop tot
    Bonjour/Bonsoir

    J'ai un problème concernant mon programme, il se ferme à la seconde valeur saisie et je ne comprends pas pourquoi.

    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
    int x = new Random().Next(20) + 1;
                Console.WriteLine("Entrez un nombre entre 1 et 20 :");
                string z = Console.ReadLine();
                int z2 = int.Parse(z);
     
                while (z2 != x)
                {
     
     
                    while (z2 < 1)
                    { Console.WriteLine("Le nombre choisie est inférieur à 1, entrez un nombre entre 1 et 20 :");
                        z = Console.ReadLine();
                    }
                    while (z2 > 20)
                    { Console.WriteLine("Le nombre choisie est supérieur à 20, entrez un nombre entre 1 et 20 :"); 11
                        z = Console.ReadLine();
                    }                
                    if (z2 < x)
                    {
                        Console.WriteLine("Le nombre mystère est supérieur");
                        z = Console.ReadLine();
                    }
                    if (z2 > x)
                    {
                        Console.WriteLine("Le nombre mystère est inférieur");
                        z = Console.ReadLine();
                    }
                    else
                    {
                        Console.WriteLine("Félicitation vous avez trouvé le nombre mystère:" + x);
                    }
     
                }
     
     
                Console.ReadKey();
    merci d'avance pour votre aide

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    il y a une balise code sur ce forum (bouton # sur l'interface de saisie) qui permet de mettre en forme le code avec les indentattions
    ce qui donne :
    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
     
    int x = new Random().Next(20) + 1;
    Console.WriteLine("Entrez un nombre entre 1 et 20 :");
    string z = Console.ReadLine();
    int z2 = int.Parse(z);
    while (z2 != x)
    {
        while (z2 < 1)
        { Console.WriteLine("Le nombre choisie est inférieur à 1, entrez un nombre entre 1 et 20 :");
            z = Console.ReadLine();
        }
        while (z2 > 20)
        { 
            Console.WriteLine("Le nombre choisie est supérieur à 20, entrez un nombre entre 1 et 20 :"); 11
            z = Console.ReadLine();
        }                
        if (z2 < x)
        {
            Console.WriteLine("Le nombre mystère est supérieur");
            z = Console.ReadLine();
        }
        if (z2 > x)
        {
            Console.WriteLine("Le nombre mystère est inférieur");
            z = Console.ReadLine();
        }
        else
        {
        Console.WriteLine("Félicitation vous avez trouvé le nombre mystère:" + x);
        }
    }
    Console.ReadKey();
    là déjà on voit que le code na va pas
    tu fais une boucle qui sort selon z2 or z2 n'est jamais modifiée dans la boucle => boucle infinie possible
    donc revois ton code car il ne semble pas être ce que tu souhaites faire
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Candidat au Club
    Homme Profil pro
    veux s'instruire
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : veux s'instruire

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Par défaut
    ok merci je viens de débuter sur les forums et en code, soit je découvre cet univers ^^

    mais merci pour la réponse

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    tu peux faire du pas à pas avec F10
    ca démarre l'exécution et ca avance d'une ligne à chaque F10
    tu peux regarder le contenu des variables en les pointants, et ca permet de comprendre l'exécution du code (pourquoi ca sort d'une boucle ou autre)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre averti
    Homme Profil pro
    Elève Ingénieur
    Inscrit en
    Juillet 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Elève Ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2014
    Messages : 26
    Par défaut
    Citation Envoyé par RoyAdrien Voir le message
    Bonjour/Bonsoir

    J'ai un problème concernant mon programme, il se ferme à la seconde valeur saisie et je ne comprends pas pourquoi.

    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
    int x = new Random().Next(20) + 1;
                Console.WriteLine("Entrez un nombre entre 1 et 20 :");
                string z = Console.ReadLine();
                int z2 = int.Parse(z);
     
                while (z2 != x)
                {
     
     
                    while (z2 < 1)
                    { Console.WriteLine("Le nombre choisie est inférieur à 1, entrez un nombre entre 1 et 20 :");
                        z = Console.ReadLine();
                    }
                    while (z2 > 20)
                    { Console.WriteLine("Le nombre choisie est supérieur à 20, entrez un nombre entre 1 et 20 :"); 11
                        z = Console.ReadLine();
                    }                
                    if (z2 < x)
                    {
                        Console.WriteLine("Le nombre mystère est supérieur");
                        z = Console.ReadLine();
                    }
                    if (z2 > x)
                    {
                        Console.WriteLine("Le nombre mystère est inférieur");
                        z = Console.ReadLine();
                    }
                    else
                    {
                        Console.WriteLine("Félicitation vous avez trouvé le nombre mystère:" + x);
                    }
     
                }
     
     
                Console.ReadKey();
    merci d'avance pour votre aide
    Salut RoyAdrien pour ton problème tu devrais suivre le(s) conseil(s) de Pol63 car comme lui je pense que ton programme ne fais pas exactement ce que tu veux. la condition de ta boucle while sera toujours vraie une fois entrée dans celle ci. Le problème vient de:
    1- Tu ne modifie nulle part la valeur de z2 or c'est elle ta condition de sortie. Donc dans while (z2 < 1) et while (z2 > 1) tu devrais ajouter z2 = int.Parse(z); à la suite de z = Console.ReadLine();

    2- Tes if ne sont pas appropriés car du moment où ton z2 n'est pas supérieur à x, ton programme entrera toujours dans le else et affichera la le message que tu "Félicitation vous avez trouvé le nombre mystère:" + x. L'une des solutions à ton pb serait d'enlever carrément le else et de mettre ton message à l'extérieur de ta boucle while. Ensuite pour tes conditionnelles if, tu devrais faire un if---else if, un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if (z2 < x)
                    {
                        Console.WriteLine("Le nombre mystère est supérieur");
                        z = Console.ReadLine();
                        z2 = int.Parse(z);
                    }
                    else if (z2 > x)
                    {
                        Console.WriteLine("Le nombre mystère est inférieur");
                        z = Console.ReadLine();
                        z2 = int.Parse(z);
                    }
    Si tu ne te retrouves pas dans mes explications et que tu as des questions à me poser, fais un commentaire et je ferais de mon mieux pour y répondre

Discussions similaires

  1. Fenêtre du programme qui se ferme à la fin de l'exécution
    Par bernie13 dans le forum Code::Blocks
    Réponses: 5
    Dernier message: 14/01/2020, 23h08
  2. programme qui s'execute trop lentement
    Par wahidred dans le forum VB.NET
    Réponses: 4
    Dernier message: 02/05/2012, 19h13
  3. Programme qui se ferme de facon inattendue
    Par geek-59600 dans le forum Débuter
    Réponses: 1
    Dernier message: 13/11/2009, 09h34
  4. Réponses: 1
    Dernier message: 04/11/2008, 10h16
  5. [WD11]Programme qui se ferme
    Par mimich9124 dans le forum WinDev
    Réponses: 12
    Dernier message: 18/11/2007, 16h54

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