我有一个关于数组的问题。
在下面的代码中,计划为用户提供一个菜单,如果用户选择nr 1,程序将要求用户输入姓名和年龄以填充数组。但我希望代码在要求用户输入名称之前检查带有名称的数组是否已满(这是因为名称是要求用户输入的第一件事(。如果数组是"0";"满";它应该写一些类似";"满";,如果没有,则要求用户输入信息。
这是问题进入画面。。。
因为只要用户不想退出程序(通过菜单(,菜单就会循环,所以可以多次选择此选项。如果用户再次选择相同的选项,那么这将意味着数组已满,并且无法对同一数组进行更多输入。在我当前的代码中;"检查";函数不起作用。我尝试过不同的解决方案,包括if/else、bool循环和自定义设计的方法。他们都失败了。
在stackoverflow快速搜索,给出了一些想法,但没有人为我工作,尽管其中一个线程似乎是好方法,但我不完全理解如何构建这种方法。下面是这个答案的链接:检查数组是否已满(有趣的部分是"int bookCounter=0">
我相信有一个简单的方法可以解决这个问题,但我真的很感谢你的帮助!
备注:有些代码是用瑞典语写的,但我把所有重要部分都翻译成了英语。
public void Run()
{
int choice;
do
{
//Menyn:
Console.WriteLine("Hello and welcome to this awesome buss-simulator!{0}", Environment.NewLine);
Console.WriteLine("Please choose an option in the menu below.{0}", Environment.NewLine);
Menytexts();
choice = CorrectEntryMenu(1, 8); //Method to make sure it's a number. Not related to this.
switch (choice)
{
case 1:
Console.WriteLine("Welcome, please enter the passengers name:"); //lägg till passa.
string name = Console.ReadLine();
int age = CorrectEntry("We also need the persons age: "); //Another method for correct input. Not the problem.
add_passenger(age, name); //Sending input info to the method containing the arrays.
Console.WriteLine("The passenger is registered. " +
"Press any key to return to the manu");
Console.ReadKey();
break;
case 2:
print_buss();
break;
}
} while (choice != 8);
}
//Metoder för betyget E
public void add_passenger(int age, string name) //Method containing the arrays and the problems.
{
string[] passengername = new string[2]; //Array for all the names. temporarily set to 2 spaces.
//idealistically the method for checking the array is inserted here.
for (int n = 0; n < passengername.Length; n++) //To fill array if not full
{
name = passengername[n];
int[] passengerage = new int[2]; //Array for all the ages. Temporarily set to 2 spaces.
for (int x = 0; x < passengerage.Length; x++) //If the namearray is not full then age is entered.
{
age = passengerage[x];
}
}
您在add_passenger方法中定义了字符串[]passengername,因此当该方法返回时,它就不存在了(并且添加的乘客丢失了(。
您可以先将字符串[]passengername作为一个实例变量。
还有:
age = passengerage[x];
应该是:
passengerage[x] = age;