Erreurs dans un code

Fermé
N2A_R Messages postés 4 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 26 septembre 2015 - Modifié par N2A_R le 26/09/2015 à 16:59
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 26 sept. 2015 à 21:46
Bonjour, j'ai un problème dans mon code. En fait, dans l'avant dernière ligne du code (le calcul du cumulatif), toutes les variables sauf la variable cumulatif sont surlignés en rouge et le programme les détecte comme une erreur, pourriez-vous m'aider ?
Voici le code :

string reponse1, reponse2, reponse3, reponse4;
            int cumulatif,reponse5, reponse6, reponse8, reponse7;
            Console.WriteLine("Entrez la réponse de la question 1");
            reponse1 = Console.ReadLine();
            if (reponse1 == "b")
                Console.WriteLine("Bravo");
            else
                Console.WriteLine("Attention");
            Console.WriteLine("Entrez la réponse de la question 2");
            reponse2 = Console.ReadLine();
            if (reponse2 == "a" || reponse2 == "d")
                Console.WriteLine("Bravo");
            else
                Console.WriteLine("Attention");
            Console.WriteLine("Entrez la réponse de la question 3");
            reponse3 = Console.ReadLine();
            if (reponse3 == "c")
                Console.WriteLine("Bravo");
            else
                Console.WriteLine("Attention");
            Console.WriteLine("Entrez la réponse de la question 4");
            reponse4 = Console.ReadLine();
            if (reponse4 == "d" || reponse4 == "e")
                Console.WriteLine("Bravo");
            else
                Console.WriteLine("Attention");
            
            switch(reponse1) {
                case "b": reponse5 = 15;
                    break;
            }
            switch (reponse2)
            {
                case "a": reponse6=15;
                    break;
                case "d": reponse6 = 15;
                    break;
            }
            switch (reponse3)
            {
                case "c": reponse7 = 15;
                    break;
            }
            switch(reponse4) {
                case "d": reponse8 = 15;
                    break;
                case "e":reponse8 = 15;
                break;
                    
            }
            cumulatif = reponse5 + reponse6 + reponse7 + reponse8;
            
            Console.WriteLine("Le cumulatif est de " + cumulatif+"%");


Merci d'avance pour votre aide
Le but du code est de demander à l'utilisateur de rentrer une valeur, puis on lui affiche un message. En suite, on additionne le nombre de bonne valeurs (25% pour chaque bonne valeur) et on lui affiche le résultat final.




A voir également:

1 réponse

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
26 sept. 2015 à 21:41
Bonsoir,

Pour que tu puisses ajouter les variables, il faut qu'elles aient un contenu, une valeur. Les déclarer ne suffit pas.

Le compilateur détecte qu'il existe au moins un chemin dans tes if et ton switch par lequel ces variables n'ont pas de valeurs.

Le plus simple pour régler ce genre de problème est de les déclarer et les initialiser à une valeur par défaut, 0 par exemple.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
26 sept. 2015 à 21:46
  switch (reponse2)
            {
                case "a": reponse6=15;
                    break;
                case "d": reponse6 = 15;
                    break;
            }


Peut se réduire à
  switch (reponse2)
            {
                case "a": 
                case "d": 
                    reponse6 = 15;
                    break;
            }


Tu pourrais aussi régler ton pb comme ça
  switch (reponse2)
            {
                case "a": 
                case "d": 
                    reponse6 = 15;
                    break;
                default:
                    reponse6 = 0;
                    break;
            }
0