BadSnip
Messages postés2Date d'inscriptionsamedi 20 septembre 2008StatutMembreDernière intervention20 septembre 2008
-
20 sept. 2008 à 13:01
aminescm
Messages postés7Date d'inscriptionmercredi 19 octobre 2011StatutMembreDernière intervention 9 mai 2012
-
3 mars 2012 à 06:34
Bonjour,
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.
aminescm
Messages postés7Date d'inscriptionmercredi 19 octobre 2011StatutMembreDernière intervention 9 mai 20122 3 mars 2012 à 06:34
c'est pas normal , j'ai le meme probléme :
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)
{
BadSnip
Messages postés2Date d'inscriptionsamedi 20 septembre 2008StatutMembreDernière intervention20 septembre 2008 20 sept. 2008 à 14:49
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();
Voilou merci de ton aide :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201136 20 sept. 2008 à 18:27
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;
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 20 sept. 2008 à 21:08
Salut,
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);