Поиск значений в массивах - PullRequest
       2

Поиск значений в массивах

0 голосов
/ 25 февраля 2019

У меня есть массив в C #, который генерирует случайный массив длиной 5. Я уже объявил этот способ

int[] array = new int[5]

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

У меня есть этот код примерно такой, он дает мне некоторые значения, а нелюбезно мне нужно.Как я могу реализовать такое, чтобы оно удовлетворяло моим условиям?Заранее спасибо.

    private void btnSearch_Click(object sender, EventArgs e)
    {
        //use InputBox dialog to input a value.
        //Search for the value in the array.
        //If found, display "Found!", otherwise
        //display "Not found!" when there is no match.

        for (int i = 0; i < array.Length; i++)
        {
            InputBox inputDlg = new InputBox("Search for array value " + (i + 1));
            if (inputDlg.ShowDialog() == DialogResult.OK)
            {
                if (array[i] == Array.IndexOf(array, 5))
                {
                    array[i] = Convert.ToInt32(inputDlg.Input);
                }
                tbxOutput.AppendText("Value found: " + array[i] + Environment.NewLine);
            }

            else
            {
                tbxOutput.AppendText("Value not found" + Environment.NewLine);
            }
        }

1 Ответ

0 голосов
/ 06 марта 2019

Если я правильно понимаю, у вас есть 1 массив с 5 значениями в нем, и вы хотите проверить, содержит ли он данное значение.Это верно?Если да, вы должны пройти через ваш массив и пометить логическое значение как true, если найдете:

private void btnSearch_Click(object sender, EventArgs e) {

    // loop until you call break
    while(true) {

        // ask for a value
        InputBox inputDlg = new InputBox("Search for array value " + (i + 1));

        try {
            int value = Convert.ToInt32(inputDlg.Input);

            // Check if value is in the array and display the appropriate message
            if(isInArray(array, value)) {
                tbxOutput.AppendText("Value found: " + value + Environment.NewLine);
                // break to exit from the while loop
                break;
            } else {
                tbxOutput.AppendText("Value not found" + Environment.NewLine);
            } 

        } catch (OverflowException) {
            tbxOutput.AppendText("OverflowException parsing input to int" + Environment.NewLine);
        } catch (FormatException) {
            tbxOutput.AppendText("FormatException parsing input to int" + Environment.NewLine);
        }   

    }
}

Метод isInArray:

// this method returns true if the given value is in the array
private static boolean isInArray(int[] array, int valueToFind) {
    boolean found = false;
    int currentValue;
    for (int i = 0; i < array.Length; i++) {
        currentValue = array[i];
        if(currentValue == valueToFind) {
            found = true;
            break;
        }
    }
    return found;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...