【发布时间】:2016-11-27 13:23:43
【问题描述】:
我在学校有一个任务说我应该创建一个类似于背包的程序,我应该在其中使用数组和列表。
背包的功能是能够将4个物品放入较小的隔间(ytterfack),然后将无限数量的物品放入大隔间(stora facket)。
我希望它与一个菜单一起使用,用户可以在其中将一项放入 (ytterfack),如果用户愿意,切换到 (stora fack) 并将一项放入该菜单.也就是说,我试图避免为 (ytterfack) 使用 for 循环,这意味着用户可以选择将 4 个对象放入 (ytterfack) 中。
有没有一种方法可以创建一个数组,让用户一次将元素放入一个数组中,甚至在数组已满时发出一条消息?
class Program
{
static void Main(string[] args)
{
Console.WriteLine("\tVälkommen till Ryggsäcken!!\n");
Console.WriteLine("\t[1] Lägg till ett föremål i det stora facket");
Console.WriteLine("\t[2] Lägg till ett föremål i ytterfacket");
Console.WriteLine("\t[3] Skriv ut innehållet i stora facket");
Console.WriteLine("\t[4] Skriv ut innehållet i ytterfacket");
Console.WriteLine("\t[5] Rensa innehållet i stora facket");
Console.WriteLine("\t[6] Rensa innehållet i ytterfacket");
Console.WriteLine("\t[7] Avsluta\n");
string[] ytterFack = new string[4];
List<string> storaFacket = new List<string> { };
int i = 0;
bool kör = true;
do
{
Console.Write("\n\tVälj punkt från menyn: ");
int menyVal = Convert.ToInt32(Console.ReadLine());
switch (menyVal)
{
case 1:
Console.Write("\n\tSkriv in ett föremål: ");
storaFacket.Add(Console.ReadLine());
//Console.WriteLine("\n\tDu har lagt in " + + " Tack!\n");
break;
case 2:
Console.Write("\n\tSkriv in ett föremål: ");
ytterFack[i] = Console.ReadLine();
//Console.WriteLine("\n\tDu har lagt in " + ytterFack[i] + " Tack!\n");
break;
case 3:
Console.WriteLine("\tInnehållet i stora facket är:");
foreach (string item in storaFacket)
{
Console.WriteLine("\t" + item);
}
break;
case 4:
Console.WriteLine("\tInnehållet i ytterfacket är:");
foreach (string item in ytterFack)
{
Console.WriteLine("\t" + item);
}
break;
case 5:
storaFacket.Clear();
Console.WriteLine("\tNu är stora facket tömt!\n");
break;
case 6:
Array.Clear(ytterFack, 0, ytterFack.Length);
Console.WriteLine("\tNu är ytterfacket tömt!\n");
break;
case 7:
kör = false;
break;
default:
break;
}
}
while (kör);
}
}
【问题讨论】:
-
对不起,代码......正如你所看到的,它并不完整,但我想给你们一个提示,它将会变成什么。
-
可以实现栈逻辑,不使用for循环。它只需要很少的变量需要递增和递减。
-
好的,我会看看我能找到关于堆栈逻辑的信息,谢谢
-
看来您已经掌握了这口井的外壳。情况 1:您正在正确添加到列表中,因为没有限制。在情况 2:这将添加到小隔间中,您当前的代码将仅在此处添加 1 项,因为“i”永远不会增加。此外,您可能想在此处检查小隔间(数组
ytterFack)是否已装满 4 个项目,然后再添加第 5 个。只是一个想法。 -
这就是你使用 List() 对象而不是 array[] 的原因。列表对象有一个 add 方法,而数组没有。