读取输入不同菜单c#

问题描述 投票:0回答:2

我试图创建一个菜单,其中数组将存储来自用户的输入(输入数字1),然后管理员可以在不同的菜单中检查数组的内容(输入数字9),但我似乎无法让它在内部可读管理菜单....我省略了登录和startmenu的方法,该部分工作。 - 代码的相关部分目前看起来像这样:

    static void Main(string[] args)
    {
        while (true)
        {
            int enteredNumber;

            int[] myArray = new int[10];

            Startmenu();
            enteredNumber = Convert.ToInt32(Console.ReadLine());

            if (enteredNumber == 1)
            {                    
                for (int i = 0; i < 1; i++)
                {
                    Console.WriteLine("Insert Number:");
                    myArray[i] = Convert.ToInt32(Console.ReadLine());
                }
                Console.Clear();
                Console.WriteLine("blabla");
                Thread.Sleep(2000);
                Console.Clear();
            }

            if (enteredNumber == 9)
            {
                if (Login(1234, 3) == true)
                {
                    foreach (int number in myArray)
                    {
                        Console.WriteLine(number);
                    }
                }
            }
        } 
    }
c# arrays input menu
2个回答
0
投票

试试这个:

static void Main(string[] args)
{
    int[] myArray = new int[10];

    while (true)
    {
        int enteredNumber;           
        // int[] myArray = new int[10]; //when you create a new int array , the array not contain values.
        Startmenu();
        enteredNumber = Convert.ToInt32(Console.ReadLine());

        if (enteredNumber == 1)
        {                    
            for (int i = 0; i < 1; i++)
            {
                Console.WriteLine("Insert Number:");
                myArray[i] = Convert.ToInt32(Console.ReadLine());
            }
            Console.Clear();
            Console.WriteLine("blabla");
            Thread.Sleep(2000);
            Console.Clear();
        }

        if (enteredNumber == 9)
        {
            if (Login(1234, 3) == true)
            {
                foreach (int number in myArray)
                {
                    Console.WriteLine(number);
                }
            }
        }
    } 
}

当你创建一个新的int数组时,数组不包含任何值,你在while循环中创建了一个数组,然后,int [] myArray = new int [10];当你再次开始循环时,这是空的,在开始循环之前放置创建。


-1
投票

正如@henoc salinas回答你需要把你

int[] myArray = new int[10];

在while循环之外,因为每次输入新选项时它都会重新初始化并从之前的数组中删除所有旧值。

但是如果你有不同的功能,并且你想在那里访问那些值,请在全局范围内声明数组

int[] myArray = new int[10];
static void Main(string[] args)
{
    while (true)
    {
        int enteredNumber;           
        // int[] myArray = new int[10]; //when you create a new int array , the array not contain values.
        Startmenu();
        enteredNumber = Convert.ToInt32(Console.ReadLine());

        if (enteredNumber == 1)
        {                    
            for (int i = 0; i < 1; i++)
            {
                Console.WriteLine("Insert Number:");
                myArray[i] = Convert.ToInt32(Console.ReadLine());
            }
            Console.Clear();
            Console.WriteLine("blabla");
            Thread.Sleep(2000);
            Console.Clear();
        }

        if (enteredNumber == 9)
        {
            if (Login(1234, 3) == true)
            {
                foreach (int number in myArray)
                {
                    Console.WriteLine(number);
                }
            }
        }
    } 
}

像这样。!

© www.soinside.com 2019 - 2024. All rights reserved.