2 votes

Le nom n'existe pas dans le contexte actuel lors de l'utilisation d'une instruction if.

Je veux calculer Pi avec le nombre de décimales indiqué par l'utilisateur et lorsque l'entrée est 0, la variable piNumber doit être définie sur '3' et non '3', afin que la sortie ne comporte pas de virgule inutile.

Cela fonctionne

        static string PiNumberFinder(int amountOfDigits)
    {
        string piNumber = "3,";
        int dividedBy = 11080585;
        int divisor = 78256779;
        int result;
        for (int i = 0; i < amountOfDigits; i++)
        {
            if (dividedBy < divisor)
                dividedBy *= 10;

            result = dividedBy / divisor;

            string resultString = result.ToString();
            piNumber += resultString;

            dividedBy = dividedBy - divisor * result;
        }

        return piNumber;
    }

Mais avec l'instruction "si", ce n'est pas le cas.

        static string PiNumberFinder(int amountOfDigits)
    {
        int dividedBy = 11080585;
        int divisor = 78256779;
        int result;
        if (amountOfDigits == 0)
        {
            string piNumber = "3";
        }
        else
        {
            string piNumber = "3,";
        }
        for (int i = 0; i < amountOfDigits; i++)
        {
            if (dividedBy < divisor)
                dividedBy *= 10;

            result = dividedBy / divisor;

            string resultString = result.ToString();
            piNumber += resultString;  // I get an error here

            dividedBy = dividedBy - divisor * result;
        }

        return piNumber;  // I get an error here
    }

J'obtiens l'erreur "The name 'piNumber' does not exist in the current context" deux fois pour les lignes indiquées dans le code ci-dessus

2voto

Pavel Anikhouski Points 18232

Vous déclarez et attribuez une valeur à piNumber variable à l'intérieur if et n'est donc pas disponible en dehors de ce champ d'application. Essayez de le déclarer avant if

string piNumber;
if (amountOfDigits == 0)
{
    piNumber = "3";
}
else
{
    piNumber = "3,";
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X