Je suis étudiant en BTS de 1ere année et je commence simplement a apprendre le C#.
J'ai recherché sur ce site et bien d'autre si quelqu'un avais la même erreur que moi mais je n'ai rien trouver (pas doué peut être?)
Comme dit dans le titre, je n'arrive pas a résoudre cette erreur. D'ailleurs je ne comprend pas non plus pourquoi il me l'affiche.
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Prix_à_payer_selon_code_article
{
class Program
{
static void Main(string[] args)
{
//Variables
int QTE;
float PHT,PaP,TVA;
string texte,CODE,prem_carac_CODE;
//Saisies
Console.WriteLine("Quelle est la quantité du produit souhaité?");
texte = Console.ReadLine();
QTE = int.Parse(texte);
Console.WriteLine("Quel est le prix hors taxe de l'article souhaité?");
texte = Console.ReadLine();
PHT = float.Parse(texte);
Console.WriteLine("Quel est le code de l'article?");
CODE = Console.ReadLine();
//Calculs
prem_carac_CODE = CODE.Substring(0, 1);
switch (prem_carac_CODE)
{
case "A": TVA = 5.25F;
break;
case "B": TVA = 19.6F;
break;
case "C": TVA = 33.0F;
break;
default: Console.WriteLine("Erreur dans la saisie du code");
break;
}
Console.WriteLine(TVA);
PaP = QTE * PHT * (TVA / 100 + 1);
//Affichage
Console.WriteLine("Le prix à payer est de" + PaP);
texte = Console.ReadLine();
Voila je ne comprend pas cette erreur "Utilisation d'une variable locale non assignée 'TVA'" a l'endroit écrit en rouge.
Je viens de lui assigné des valeurs dans le Switch mais rien a faire.
Pourtant quand je déplace mon "Console.WriteLine(TVA);" a l'intérieur du Switch et que j'execute, il m'affiche bien la valeur demandé et l'erreur reste la même mais sur le TVA en Vert.
Si quelqu'un peut m'aider. Merci
A voir également:
Utilisation d'une variable locale non assignée
Utilisation d'une variable locale non assignée c# - Meilleures réponses
C# utilisation d'une variable locale non assignée - Meilleures réponses
voila mon code , juste j'ai crée une méthode dans une classe pour connaitre si la personne et un stagiaire ou condidat etc , et j'ai vraiment besoin de récupérer le champ (TAB)
merci pour votre aide .
public string recherches(string champ ,string val)
{
Effectivement l'erreur ne s'affiche plus. J'ai tester avec une autre valeur que "A","B" ou "C" (ex : "D")
et il m'affiche uniquement mon message "Erreur dans la saisie du code".
Mon code finalisé et réussi grâce a toi est :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Prix_à_payer_selon_code_article
{
class Program
{
static void Main(string[] args)
{
//Variables
int QTE;
float PHT,PaP,TVA;
string texte,CODE,prem_carac_CODE;
//Saisies
Console.WriteLine("Quelle est la quantité du produit souhaité?");
texte = Console.ReadLine();
QTE = int.Parse(texte);
Console.WriteLine("Quel est le prix hors taxe de l'article souhaité?");
texte = Console.ReadLine();
PHT = float.Parse(texte);
Console.WriteLine("Quel est le code de l'article?");
CODE = Console.ReadLine();
if (TVA == 00.0F)
{
PaP = 0;
Console.WriteLine("Erreur dans la saisie du code.");
}
else
{
PaP = QTE * PHT * (TVA / 100 + 1);
Console.WriteLine("La TVA est de :" +TVA+ "%.");
Console.WriteLine("Le prix à payer est donc de " + PaP.ToString("##0.00") + " euros.");
};
texte = Console.ReadLine();
Pour ton info quelques petits conseils
1 --> Tu peux faire ton switch sur les caractères
par exemple
switch (CODE[0])
{
case 'A': TVA
2 --> Console.WriteLine("La TVA est de :" +TVA+ "%.");
Aurait pu être écrit de la forme suivante
Console.WriteLine(String.Format("La TVA est de : {0}%.",TVA));
Plus performant (évites la contenation de chaine (car la chaine est recopie a chaque "+" string est immuable cherche sur internet et du comprendra)
et plus propre (exemple pour l'internationalisation, ....)
3 --> Tu peux même enlever les namespace inutile
using System.Collections.Generic;
using System.Linq;
using System.Text;
Petite remarque au passage : on a tendance à oublier que la méthode WriteLine supporte déjà de base le fonctionnement pour lequel nhervagault a utilisé String.Format au travers de différentes surcharges :
De 1 à 4 valeurs : WriteLine(String, Object) / WriteLine(String, Object, Object) / WriteLine(String, Object, Object, Object) / WriteLine(String, Object, Object, Object, Object)
5 valeurs et plus : [http://msdn.microsoft.com/en-us/library/828t9b9h.aspx WriteLine(String, Object[])]
Donc
Console.WriteLine(String.Format("La TVA est de : {0}%.",TVA));
devient
Console.WriteLine("La TVA est de : {0}%.", TVA);