繁体   English   中英

c#控制台从用户输入获取带有索引的数组值

[英]c# console get array value with index from user input

我正在学习编程课程。 当用户选择其索引时是否可以输出数组值? 它并不多,但这是我到目前为止的代码:

double[] cisTuition = new double[] { 0.00, 1.00, 1.50, 2.00, 2.50 };
Console.WriteLine("Please choose the semester");

您需要使用数组的索引进行访问

Console.WriteLine(cisTuition[index]);

例如,如果您需要从用户输入的输入值中获取索引,

int input = int.Parse(Console.ReadLine());
Console.WriteLine("value is: " + cisTuition[input]);

是的,您可以在特定索引位置到达数组中的值,如下所示:

double[] cisTuition = new double[] { 0.00, 1.00, 1.50, 2.00, 2.50 };
Console.WriteLine(cisTuition[0]);

输出:

0.00

然后,当您请求通过输入提供索引时,我将使用Console.ReadLine()获取用户选择并将其记录到变量 ( index ) 中。

最后,我会将该变量用作cisTuition[index]

请参阅下面的完整代码:

double[] cisTuition = new double[] { 0.00, 1.00, 1.50, 2.00, 2.50 };
Console.WriteLine("Enter input:"); // Prompt the question
string index = Console.ReadLine(); //  Record the input
Console.WriteLine(cisTuition[index]); // Show the array value of this index

是的,您可以通过索引获取cisTuition数组的值:检查下面的片段

double[] cisTuition = new double[] { 0.00, 1.00, 1.50, 2.00, 2.50 };
Console.WriteLine("Please choose the semester");

int index = int.Parse(Console.ReadLine());
Console.WriteLine("value is: " + cisTuition[index]);

当然,您可以改进该片段以验证索引是否在数组的边界内,但这是基本思想。

    bool Keeplooping = true; //Boolean to tell whether the loops continues
    while (Keeplooping == true) //while the user hasn't chosen a valid index
    {
    Console.WriteLine("Select an index");
    try //if this fails then the input is not an int or too big/small
    {
    int index = int.Parse(Console.ReadLine()); //receive input
    Console.WriteLine(cisTuition[index].ToString()); //output the value
    Keeplooping = false; //loop will end after this iteration
    }
    catch //alerts user that the input is bad and tries again
    {
        Console.WriteLine("Please select a valid index");
    }
    }

这应该可以解决问题(我已经测试过了)

那么首先你需要用户输入,当你得到这个时你可以做你正确的检查,比如它是 NaN,或者它是否在数组索引之外。 在此之后,应该很容易查看数组中的索引然后打印它。 我不怎么用 C# 编程,但我想它可能看起来像:

double[] cisTuition = new double[] { 0.00, 1.00, 1.50, 2.00, 2.50 };
Console.WriteLine("Please choose the semester");

var UserInput = getUserInput();

if(UserInput == NaN || UserInput > cisTuition.length)
return()

print( cisTuition[UserInput] )

我知道这绝对不是正确的语法,但逻辑应该有效。 希望能帮助到你。

我认为这里遗漏的是如何读入一个值,如果可能将其转换为int ,然后将其用作对数组索引的引用。

因此,如果是这种情况,您可能希望在代码末尾添加类似于以下内容的内容:

string strUserInput = Console.ReadLine();
int? iConverted = null;
int.TryParse(strUserInput, out iConverted);
if ((iConverted != null) && (iConverted <= (cisTuition.Length - 1)) )
{
  Console.WriteLine(cisTuition[iConverted]);
}
else
{
  Console.WriteLine("Invalid value or index of the array");
}

完整解释:

ReadLine()拉入用户提供的值作为数组的索引

iConverted被实例化(作为空)开始,为了允许一个整数也为空,我们必须使用? 还有

我们TryParsestrUserInput成整数,并倾倒入iConverted如果成功的话(如果没有, iConverted保持为空)

最后,我们打印请求的索引数组,或者通知用户他们的索引超出范围,或者没有正确解析。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM