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