Partage
  • Partager sur Facebook
  • Partager sur Twitter

utiiisation d'une variable locale non assignee

aide svp

Sujet résolu
    16 octobre 2018 à 18:39:45

    salut tout le monde,
    je m'apple steven et je suis debutant en c#.On nous a donne un devoir a rendre sur la platteforme de l'université
    Bon en bref mon problème est que jai utilise un enchainement de boucle et de conditions dans lequel des affectations ont lieu mais une fois sorti de ces boucles j'arrive pas a utilise les dites variables qui ont subis ces affectations.
    je record l'erreur "utilisation d'une variable locale non assignee"
    voici mon code en espérant que vous pourrez m'aider! merci bien
    je suis mes cours sur openclassroom mais je vois pas comment résoudre problème

      string eingabeLänge1, eingabeLänge2, eingabeLänge3;
                double länge1, länge2, länge3, ergebnis;
                double essai1;
                Console.WriteLine("Also das war schon leicht für mich können Sie mir eine schwierigere Aufgabe geben? Wie die Berechnung der Flächeninhalt eines Dreieicks");
                do
                {
    
                    Console.WriteLine("Nehmen wir an es ist ein beliebiges Dreieck\n Und geben Sie die erste Länge");// demande de saisie de la 1ere dimension
                    eingabeLänge1 = Console.ReadLine();
                    if (double.TryParse(eingabeLänge1, out länge1))// verification de compatibilite de la saisie
                    {
                        do
                        {
                            Console.WriteLine("Ok gut und jetzt die zweite Länge!");// demande de saisie de la 2e dimension
                            eingabeLänge2 = Console.ReadLine();
    
                            if (double.TryParse(eingabeLänge2, out länge2))// verification de compatibilite de la saisie
                            {
    
                                do
                                {
    
    
                                    Console.WriteLine("Fast geschafft fehlt nur die dritte Länge!");// demande de saisie de la 3e dimension
                                    eingabeLänge3 = Console.ReadLine();
                                    if (double.TryParse(eingabeLänge3, out länge3)) // verification de compatibilite de la saisie
                                    {
                                        Console.WriteLine("Ok perfekt jetzt arbeite ich wirklich!");
                                    }
                                    else
                                    {
                                        Console.WriteLine("Oh nöö est muss ein Zahl sein!");
                                    }
                                } while (!double.TryParse(eingabeLänge3, out länge3));// boucle permettant de reafficher le bloc en cas de saisie de lettre
    
    
                            }
                            else
                            {
                                Console.WriteLine("Oh nöö est muss ein Zahl sein!");
                            }
                        } while (!double.TryParse(eingabeLänge2, out länge2));//boucle permettant de reafficher le bloc en cas de saisie de lettre
    
                    }
    
    
                    else
                        Console.WriteLine("Oh nöö est muss ein Zahl sein!");
    
    
    
                } while (!double.TryParse(eingabeLänge1, out länge1));// boucle permettant de reafficher le bloc en cas de saisie de lettre
    
    
                Console.WriteLine("youpi");
                ergebnis = (länge1 + länge2 + länge3) / 2; // mais visual code dit que les deux variables sousligne en rouge ne sont pas "assigne"
    


    • Partager sur Facebook
    • Partager sur Twitter
      16 octobre 2018 à 19:00:21

      Toi tu sais que pour sortir du do/while il a fallu rentrer dans le if correspondant et donc que ta variable a été assignée ; mais le compilo lui non, par conséquent de son point de vue il y a un chemin de code (celui où on ne passe par aucun if et sors des do/while) où les variables n?ont pas eu de valeur avant d'être utilisées et donc te signale un warning.

      Solution simple, donne une valeur par défaut à tes variables dès le début.

      Cela étant dit, un tel niveau d'imbrication (do/while et if les uns dans les autres) c'est pas très lisible surtout quand on se rend compte que tu y fais la même chose, une petite méthode à la place à appeler 3 fois serait mieux.

      Aussi retester le même tryparse dans le if et le while c'est bof de faire 2 fois la même chose quand il suffit de conserver le résultat au premier coup.

      Enfin, on a tendance à éviter les accents dans le code (pour les variables et autres)

      • Partager sur Facebook
      • Partager sur Twitter
      Censément, quelqu'un de sensé est censé s'exprimer sensément.
        17 octobre 2018 à 17:13:39

        merci bien 
        ta raison le code est un peu trop touffu
        j'ai initialise et sa a marche  

        • Partager sur Facebook
        • Partager sur Twitter

        utiiisation d'une variable locale non assignee

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown