0

我目前的任务是让用户输入 5 个变量。使用变量,我需要创建一系列循环来读取变量并将它们分配给变量。我只需要使用 1Console.ReadLine();我目前有这个设置:

string userName = ""; 
int v1, v2, v3, v4, v5 = 0;  

int i = 1;

while (i <= 5)
{
    int InputCheck = 0;
    Console.WriteLine("Please input a number {0} between 10 and 50;", i);
    InputCheck = Convert.ToInt32(Console.ReadLine());

    if (InputCheck >= 10 && InputCheck <= 50) 
    {

        //if (i >= 10 && i <= 50)
            //i++;

        if (i == 1)
        {
            InputCheck = v1;
        }

        else if (i == 2)
        {
            InputCheck = v2;
        }

        else if (i == 3)
        {
            InputCheck = v3;
        }

        else if (i == 4)
        {
            InputCheck = v4;
        }

        else if (i == 5)
        {
            InputCheck = v5;
        }

        if (InputCheck < 10 || InputCheck > 50)
        {
            Console.WriteLine("The number you entered is either to high or to low please re-enter a number:");
        }
    }

我很困惑为什么我会收到错误使用未分配的变量。任何帮助将不胜感激。

4

4 回答 4

1

您永远不会声明 v1、v2、v3 等。但是假设您在其他地方声明它们,如果我理解您要做什么,那么您的分配是倒退的。

例如,你在哪里写作

InputCheck = v1;

你可能想要

v1 = InputCheck;

然后您可以通过 v1、v2 等,并使用这些值做您想做的事情(这将是用户输入的输入内容)。

好的...在您最近发表评论之后,您强调您在其他地方初始化 v1-5,我很确定您的问题是您的分配只是颠倒了,正如我上面所说的。如果您需要帮助了解原因,请询问。

于 2013-02-18T19:16:51.880 回答
1

您将变量声明为

 int v1, v2, v3, v4, v5 = 0;

这会初始化 v5 而不是其他的。错误消息实际上提供了线索。阅读消息始终是第一个调试工具。

该消息告诉您“v1 未初始化”。所以你去看看你在哪里初始化它(或者你还没有)。这就是如何找到这样的错误。

实际上,当您说您将 0 分配给它们时,我知道您在一个声明中遇到了多个变量的问题。该消息使我能够在没有看到您的代码的情况下找到问题。

于 2013-02-18T19:21:29.073 回答
0

考虑使用 aList来保存数字

var numbersList = new List<int>();

while(numbersList.Count <= 5)
{
    int input = Convert.ToInt32(Console.ReadLine());
    if(input >= 10 && input <= 50)
    {
        numbersList.Add(input);
        continue;
    }

    Console.WriteLine("The number you entered is either to high or to low please re-enter a number:");
}
于 2013-02-18T19:19:40.000 回答
0

您是否正在初始化变量 v1,v2,v3,v4,v5 ?考虑到您没有初始化变量;您不能将未分配的变量分配给任何其他局部变量,因此声明变量 v1,v2,v3,v4,v5 = 0 问题将得到解决。如上所述,建议使用通用列表。

于 2013-02-18T19:32:10.420 回答