c#。阵列在我的交换机中不断重置自身

c#。阵列在我的交换机中不断重置自身,c#,arrays,switch-statement,C#,Arrays,Switch Statement,我目前在编程101,我已经被一个问题困扰了很长时间 我的作业要求我创建一个类,该类包含一系列方法,以在开关盒(作为菜单)中运行 如果我按1(添加乘客),它会执行第一次应该执行的操作,但第二次,它只会重新启动阵列 我似乎无法将我的答案保存到数组中,然后移动到数组中的下一个位置 有人能解释一下我应该如何“调用”数组并将其保存在我的for循环之外的方法add_pass using System; namespace bussen { class buss { publ

我目前在编程101,我已经被一个问题困扰了很长时间

我的作业要求我创建一个类,该类包含一系列方法,以在开关盒(作为菜单)中运行

如果我按1(添加乘客),它会执行第一次应该执行的操作,但第二次,它只会重新启动阵列

我似乎无法将我的答案保存到数组中,然后移动到数组中的下一个位置

有人能解释一下我应该如何“调用”数组并将其保存在我的for循环之外的方法
add_pass

using System;

namespace bussen
{
    class buss
    {
        public int[] passagerare;
        public int numbof_passagerare;
        
        public void Run()
        {
            int nmr = 0;

            do
            {
                Console.WriteLine("options:");
                Console.WriteLine("1 add passenger");
                Console.WriteLine("2 print out all passengers");
                Console.WriteLine("3 calc average age");
                Console.WriteLine("0 close program");
                nmr = int.Parse(Console.ReadLine());      

                switch (nmr)
                {
                    case 1:add_pass();
                        break;

                    case 2:all_pass();
                        break;

                    case 3:
                        break;

                    case 0:
                        break;
                }
            } while (nmr != 0);
        }

        public void add_pass()
        {
            if (passagerare.Length < 5)
            {
                for (int i = 0; i < passagerare.Length; i++)
                {
                    Console.WriteLine("type age of passenger");
                    int numbof_passenger = int.Parse(Console.ReadLine());
                    passagerare[i] = numbof_passenger;
                    break;
                }
            }       
            else if(passagerare.Length >= 5)
            {
                Console.WriteLine("buss is full");
            }
        }

        public void all_pass()
        {
            foreach(int index in passagerare)
            {
                Console.WriteLine(index);
            }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var minbuss = new buss();
            minbuss.Run();
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}
使用系统;
名称空间布森
{
班车
{
公共交通;
帕萨格拉尔公共交通局;
公开募捐
{
int nmr=0;
做
{
Console.WriteLine(“选项:”);
控制台。写入线(“1添加乘客”);
控制台。WriteLine(“2打印所有乘客”);
控制台。写入线(“3计算平均年龄”);
Console.WriteLine(“0关闭程序”);
nmr=int.Parse(Console.ReadLine());
开关(nmr)
{
案例1:添加_pass();
打破
案例2:全部通过();
打破
案例3:
打破
案例0:
打破
}
}而(nmr!=0);
}
公共无效添加通行证()
{
如果(通道长度<5)
{
for(int i=0;i=5)
{
控制台写入线(“总线已满”);
}
}
公众作废所有通行证()
{
foreach(帕萨格拉尔的整数索引)
{
控制台写入线(索引);
}
}
}
班级计划
{
静态void Main(字符串[]参数)
{
var minbuss=新总线();
minbus.Run();
控制台。写入(“按任意键继续…”);
Console.ReadKey(true);
}
}
}

它重新开始是因为你让它重新开始。for循环每次从0开始

for (int i = 0; i < passagerare.Length; i++)
{
    Console.WriteLine("type age of passenger");
    int numbof_passenger = int.Parse(Console.ReadLine());
    passagerare[i] = numbof_passenger;
    break;
}
for(int i=0;i

您需要找到数组的长度并附加新条目。尝试使用列表而不是任何数组。

问题出在add_pass方法中,我使用for循环添加乘客。每次我按菜单中的数字1调用该方法时,循环都会重新启动我保存整数的数组。为了正确执行此操作,我只调用了不带循环的方法,如下所示。谢谢大家的帮助

 public void add_pass()
    {
        if (numbof_passagerare < 5)
        {
            Console.WriteLine("how old is the passenger");
            int age = int.Parse(Console.ReadLine());
            passagerare[numbof_passagerare++] = age;
        }
        else if(numbof_passagerare == 5)
        {
            Console.WriteLine("buss is full!");
        }
public void add_pass()
{
if(帕萨格拉尔数<5)
{
Console.WriteLine(“乘客多大岁数”);
int age=int.Parse(Console.ReadLine());
帕萨格拉尔[numbof_passagerare++]=年龄;
}
否则如果(Numbeof_passagerare==5)
{
控制台。WriteLine(“总线已满!”);
}

将公共int[]passagerare;更改为公共int[]passagerare=新int[5];你最好使用列表而不是数组,你可以轻松地将它们添加到列表中,而不必担心。该网站不是为了做你的家庭作业。也就是说,社区很乐意提供帮助。“重新启动数组”是什么意思?输出到底是什么?你希望/想要输出什么?@Sergey这不会有多大帮助,因为内部循环
add_pass()
将始终覆盖第一个元素。