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 :

utilisation d'une variable locale non assignee [Débutant]


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 6
    Par défaut utilisation d'une variable locale non assignee
    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.
    jobtiens l#erreur suivante: "utilisation d'une variable locale non assignee"
    voici mon code en espérant que vous pourrez m'aider! merci bien ps je suis en Allemagne donc ya un peu d'allemand sur mon 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    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"

  2. #2
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut

    C'est un problème d'algo. Mes commentaires :
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    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
    	{
    		// Si tu ne rentres pas dans ce if, länge2 et länge3 n'ont pas été assignées, etc.
    		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!");
    
    
    
    } 
    // la condition du while sera testée au moins une fois, donc länge1 sera initialisée
    while (!double.TryParse(eingabeLänge1, out länge1));// boucle permettant de reafficher le bloc en cas de saisie de lettre
    
    
    Console.WriteLine("youpi");
    // En clair, si tu n'es pas passé dans le premier if, länge2 et länge3 n'ont tout simplement pas de valeur. Si tu rentres dans le if, elles en ont, mais le Visual Studio à juste titre anticipe tous les cas de figure
    ergebnis = (länge1 + länge2 + länge3) / 2; // mais visual code dit que les deux variables sousligne en rouge ne sont pas "assigne"
    Tu peux leur mettre une valeur par défaut avant tes tests

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 6
    Par défaut
    Merci
    j’ai initialisé à 0 et bizarrement cela à pris . Mais j'avoue que je comprend pas . Dans mes boucles if quand la condition if s‘effectue elle n‘affecte pas automatiquement la valeur que tryparse cherche à convertir ?

  4. #4
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Citation Envoyé par junior1998 Voir le message
    Merci j’ai initialisé à 0 et bizarrement sa a pris . Mais javoue que je comprend pas . Dans mes boucles if quand la condition if s‘effectue elle n‘affecte pas automatiquement la valeur que tryparse cherche à convertir ?
    Ce n'est pas bizarre c'est normal

    Si tu réduis ton algo :
    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 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
    	{
    		// ...
    	}
    	else
    		Console.WriteLine("Oh nöö est muss ein Zahl sein!");
    } 
    // la condition du while sera testée au moins une fois, donc länge1 sera initialisée
    while (!double.TryParse(eingabeLänge1, out länge1));
    ergebnis = (länge1 + länge2 + länge3) / 2;
    Regarde bien, si pas de passage dans le if à aucun moment il n'y a un TryParse qui est exécuté (ton incompréhension est ici : si pas d'exécution, pas d'affectation de variable, tout simplement)

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 6
    Par défaut
    Merci bien c’est trop gentil

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

Discussions similaires

  1. [Toutes versions] Identifier les variables locales non utilisées
    Par basto dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/03/2017, 17h32
  2. Utiliser une variable locale dans une autre fonction
    Par philippe44500 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 22/01/2016, 10h34
  3. Réponses: 3
    Dernier message: 01/01/2016, 18h31
  4. Utiliser la valeur d'un spinner lors de la déclaration d'une variable locale
    Par Jiggazzzzz dans le forum Composants graphiques
    Réponses: 4
    Dernier message: 05/12/2011, 09h31
  5. Réponses: 6
    Dernier message: 23/03/2010, 13h01

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