Как получить значение функции вне l oop "while" в C#? - PullRequest
0 голосов
/ 01 мая 2020
    bool Estprenom = false;
    while (!Estprenom)
   {
     string prenom = Console.ReadLine();
     if (prenom == "x" || prenom == "y")
     {
        Estprenom = true;
        Console.WriteLine("..." + prenom + "...");
     } 
     else
     {
        Estprenom = false;
        Console.WriteLine("Error " + prenom + " is not your name !\n");
     }              
   }

Это мой код, и я хотел бы знать, как использовать значение «prenom» за пределами l oop «while». В этом примере значение задается пользователем через «Console.ReadLine», но я не могу использовать его за пределами l oop. Если я поставлю его перед l oop:

  bool Estprenom = false;
  string prenom = Console.ReadLine();

l oop никогда не остановится, если написанное имя неверно.

Как я могу получить значение строки "prenom" вне l oop, чтобы я мог написать:

   while (!Estprenom)
    {
    (...)
    }
   Console.WriteLine("..." + prenom );

Спасибо за вашу помощь!

Ответы [ 3 ]

3 голосов
/ 01 мая 2020

Просто объявите переменную вне l oop и затем назначьте ее внутри l oop:

string prenom;
while (!Estprenom)
{
    ...
    prenom = Console.ReadLine();
    ...
}
Console.WriteLine("..." + prenom );
2 голосов
/ 01 мая 2020

Просто вытащите значение prenom из области действия l oop.

bool Estprenom = false;
string prenom;
while (!Estprenom)
{
    prenom = Console.ReadLine();
    if (prenom == "x" || prenom == "y")
    {
        Estprenom = true;
        Console.WriteLine("..." + prenom + "...");
    }
    elsestring 
    {
        Estprenom = false;
        Console.WriteLine("Error " + prenom + " is not your name !\n");
    }               
}
Console.WriteLine(prenom);
0 голосов
/ 02 мая 2020

Спасибо за ваши ответы.

Ну, я использовал твой код, но .. Кажется, он не работает. Я все еще получил ошибку.

     bool Estprenom = false;
        string prenom;
        while (!Estprenom)
        {
            prenom = Console.ReadLine();
            if (prenom == "x" || prenom == "y")
            {
                Estprenom = true;
                Console.WriteLine("..." + prenom + "...");
            }
            else            
            {
                Estprenom = false;
                Console.WriteLine("Error " + prenom + " is not your name !\n");
            }
        }
        Console.WriteLine(prenom);

Все еще говорится, что значение "prenom" в "Console.WriteLine (prenom) не назначено. Я не понимаю, почему ...

...