【问题标题】:How to get the value of a function outside the loop "while" in C#?如何在C#中的循环“while”之外获取函数的值?
【发布时间】:2020-08-16 05:32:03
【问题描述】:
    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");
     }              
   }

这是我的代码,我想知道如何在循环“While”之外使用值“prenom”。在此示例中,该值由用户通过“ Console.ReadLine ”设置,但我不能在循环之外使用它。如果我把它放在循环之前:

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

如果写错了名字,循环将永远不会停止。

如何在循环外获取字符串“prenom”的值,以便编写:

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

感谢您的帮助!

【问题讨论】:

  • 只要在while循环前声明,在循环中赋值即可。

标签: c# function while-loop


【解决方案1】:

只需在循环外声明变量,然后在循环内赋值即可:

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

【讨论】:

    【解决方案2】:

    只需将 prenom 值拉出循环范围即可。

    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);
    

    【讨论】:

      【解决方案3】:

      感谢您的回答。

      嗯,我确实使用了您的代码,但是.. 它似乎不起作用。我仍然有一个错误。

           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);
      

      还是说“Console.WriteLine(prenom)”中的“prenom”值没有赋值,不明白为什么……

      【讨论】:

      • 我没有看到真正的问题。使用调试器单步调试您的代码并查看究竟发生了什么是一个好主意。您可能希望像这样初始化 prenom:string prenom= ''"; 这会将 prenom 设置为空字符串。
      • 我还可以推荐一种更好的连接字符串的方法。如果在字符串前面加上美元符号,则可以使用方括号来包含变量。这更有效,看起来更好一些。在您的示例代码中:Console.WriteLine($"...{prenom}...");这从 C#6.0 开始,你应该有,实际版本是 C#8.0
      猜你喜欢
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 2016-04-29
      • 2012-06-01
      • 2016-11-30
      • 1970-01-01
      • 2019-11-05
      • 2017-08-03
      相关资源
      最近更新 更多