Консоль c # получает значение массива с индексом из пользовательского ввода - PullRequest
0 голосов
/ 15 ноября 2018

Я знакомлюсь с классом программирования.Можно ли вывести значение массива, когда пользователь выбирает его индекс?Это немного, но это мой код:

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

Ответы [ 6 ]

0 голосов
/ 15 ноября 2018
    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");
    }
    }

Это должно помочь (я уже проверял это)

0 голосов
/ 15 ноября 2018

Я думаю, что здесь упущено, как прочитать значение, преобразовать его в 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 остается нулевым)

Наконец, мы печатаем запрошенный индексный массив или уведомляем пользователя о том, что его индекс вышелграниц или неправильно проанализированы.

0 голосов
/ 15 ноября 2018

Ну, во-первых, вам нужно ввести данные от пользователей, когда вы получите это, вы можете сделать правильные проверки, например, NaN или если он находится вне индекса массивов. После этого должно быть легко найти индекс в массиве и затем распечатать его. Я не так много программирую на C #, но думаю, это может выглядеть примерно так:

double [] cisTuition = new double [] {0,00, 1,00, 1,50, 2,00, 2,50}; Console.WriteLine («Пожалуйста, выберите семестр»);

var UserInput = getUserInput ();

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

print (cisTuition [UserInput])

Я знаю, что это определенно не правильный синтаксис, но логика должна работать. Надеюсь, поможет.

0 голосов
/ 15 ноября 2018

Да, вы можете получить значение массива 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]);

Конечно, вы можете улучшить этот фрагмент, проверяя, что индекс находится внутри границ массива, но это основная идея.

0 голосов
/ 15 ноября 2018

Вам необходимо получить доступ, используя индекс массива

Console.WriteLine(cisTuition[index]);

Например, если вам нужно получить индекс из введенного пользователем значения ввода,

int input = int.Parse(Console.ReadLine());
Console.WriteLine("value is: " + cisTuition[input]);
0 голосов
/ 15 ноября 2018

Да, вы можете достичь значения внутри и массива в определенной позиции индекса, как показано ниже:

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

Ouput:

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
...