我目前的任务是让用户输入5个变量。使用变量我需要创建一系列循环来读取变量并将它们分配给变量。我只需要使用1 Console.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:");
}
}
我很困惑为什么我收到错误使用未分配的变量。任何帮助将不胜感激。
答案 0 :(得分:1)
你没有声明v1,v2,v3等。但假设你在其他地方宣布它们,如果我理解你要做的事情,你的任务就会倒退。
例如,你在写作的地方
InputCheck = v1;
你可能想要
v1 = InputCheck;
然后你可以通过v1,v2等,然后用值做你想做的事情(这将是用户为输入键入的内容)。
好的......在你最近的评论之后,你强调你在其他地方初始化v1-5,我很确定你的问题就是你的作业正好如上所述。如果您需要帮助理解原因,请询问。
答案 1 :(得分:1)
您将变量声明为
int v1, v2, v3, v4, v5 = 0;
这会初始化v5但不会初始化其他v5。错误消息实际上提供了一个线索。阅读消息是第一个调试工具。
消息告诉您“v1未初始化”。所以你去看看你初始化的地方(或者你还没有)。这是如何找到这样的错误。
实际上,当你说你给它们分配了0时,我知道你在一个声明中遇到了多个变量这个问题。该消息使我无需查看您的代码即可找到问题。
答案 2 :(得分:0)
考虑使用List
来保存数字
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:");
}
答案 3 :(得分:0)
您是否正在初始化变量v1,v2,v3,v4,v5?考虑到你没有初始化变量;你不能将未分配的变量分配给任何其他局部变量,因此声明变量v1,v2,v3,v4,v5 = 0问题将得到解决。如上所述,建议使用通用列表。