我需要创建一个数组来存储10个整数,并允许用户使用3个选项来处理数据

本文关键字:用户 许用户 数据 处理 选项 3个 10个 创建 一个 整数 存储 | 更新日期: 2023-09-27 18:25:25

这里有代码。前两部分很好;没有问题。

using System;
namespace MyNameSpace
{
  class IntArrayDemo
  {
      static void Main()
      {
        //Declare variables
        double[] dblIntArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};
        string[] strIntArray = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
        double   dblSentVal  = 0;
        //Get user input
        Console.WriteLine("Enter 1 to view the list in numeric order. Enter 2 to view the list in reverse numeric order. Enter 3 to choose a specific position to view.");
        dblSentVal = (Convert.ToDouble(Console.ReadLine()));
        if (dblSentVal == 1)
        {
            foreach(double dblInt in dblIntArray)
                Console.WriteLine(dblInt);
            Console.ReadLine();
        }
        else if (dblSentVal == 2)
        {
            Array.Reverse(dblIntArray);
            foreach(double dblInt in dblIntArray)
                Console.WriteLine(dblInt);
            Console.ReadLine();
        }
        else if (dblSentVal == 3)
        {
            for (int k = 0; k < strIntArray.Length; ++k)
            {
                if (strIntArray[k] == Console.ReadLine())
                {
                    Console.WriteLine("Number {0} in the list is {1}", strIntArray[k], dblIntArray[k]);
                }
            }
        }   
        Console.ReadLine();
    }
}

我遇到的问题是这里的第三个选项:

else if (dblSentVal == 3)
{
    for (int k = 0; k < strIntArray.Length; ++k)
    {
        if (strIntArray[k] == Console.ReadLine())
        {
            Console.WriteLine("Number {0} in the list is {1}", strIntArray[k], dblIntArray[k]);
        }
    }
}   
Console.ReadLine();

当执行并选择第三个选项时,程序将运行,但为了查看数组中的整数4,我必须在控制台中键入数字4,4次,如下所示:

44.4.4.列表中的第4位是400

我不想要这个。在只键入4一次之后,它应该显示"列表中的数字4是400"。请帮忙!

我需要创建一个数组来存储10个整数,并允许用户使用3个选项来处理数据

第一次在for循环中调用Console.ReadLine()时,k等于0。CCD_ 3将仅在循环中的第4次等于4。

如果您希望用户输入的值是在for循环中读取的值,则将Console.ReadLine从循环中拉出:

string str = Console.ReadLine();
for (int k = 0; k < strIntArray.Length; ++k)
{
    if (strIntArray[k] == str)
    {
        Console.WriteLine("Number {0} in the list is {1}", strIntArray[k], dblIntArray[k]);
    }
}

比你想象的更容易:

else if (dblSentVal == 3)
{
    int index = int.Parse(Console.ReadLine())
    Console.WriteLine("Number {0} in the list is {1}", index, dblIntArray[index]);
}   
Console.ReadLine();

它是一个数组,只需对其进行索引;不需要循环。

如果您的用户不使用基于0的数组,您可能希望将index-1用于第二项:)