代码之家  ›  专栏  ›  技术社区  ›  Mark Chris

添加一条消息,当用户选择C#console中不存在的索引时显示该消息

  •  0
  • Mark Chris  · 技术社区  · 2 年前

    嗨,我是编程新手,目前正在学习C#所以请跟我谈谈。我目前一直在尝试为用户显示“索引不存在”。我尝试了不同的方法,但总是出错。我环顾四周,但找不到与我正在做的事情类似的东西。以下是我目前的代码:

            int[] myNumbers = { 10, 5, 15, 20, 30 };
            Console.WriteLine("User please enter a number from 0 to 4\n");
    
            int userIndex = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("You chose number: " + myNumbers[userIndex]);
    
            if (userIndex > 4)
            {
                Console.WriteLine("Index does not exist " + myNumbers[userIndex);
            }
                
    
            Console.ReadLine();
    

    非常感谢。

    2 回复  |  直到 2 年前
        1
  •  0
  •   Karen Payne    2 年前

    尝试以下正确断言超出范围的方法。

    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] myNumbers = { 10, 5, 15, 20, 30 };
                Console.WriteLine("User please enter a number from 0 to 4\n");
    
                int userIndex = Convert.ToInt32(Console.ReadLine());
    
                if (userIndex <= 4)
                {
                    Console.WriteLine("Index does not exist " + myNumbers[userIndex]);
                }
                else
                {
                    Console.WriteLine($"{userIndex} is out of range ");
                }
    
    
                Console.ReadLine();
            }
        }
    }
    
        2
  •  0
  •   JayV    2 年前

    你应该改变你写的代码的顺序。现在,您正试图访问一个数组(可能使用了不正确的数组索引)。

    int[] myNumbers = { 10, 5, 15, 20, 30 };
    Console.WriteLine("User please enter a number from 0 to 4\n");
    
    int userIndex = Convert.ToInt32(Console.ReadLine());
    if (userIndex > 4)
    {
        Console.WriteLine("Index does not exist " + myNumbers[userIndex);
    }
    else
    {
        Console.WriteLine("You chose number: " + myNumbers[userIndex]);
    }
    
    Console.ReadLine();