Возникли проблемы при кодировании приложения с использованием цикла do ... do ... в Visual Basic, отображающего список чисел - PullRequest
0 голосов
/ 06 марта 2019

В моем домашнем задании пользователю дается два текстовых поля в форме заявки для ввода чисел.В поле «От» пользователь введет первый номер в списке, с которого он хочет начать.В поле Кому они введут последний номер, который они хотят показать в списке.

Например:

С: 1 Кому: 5

Список: 1 2 3 4 5

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

Редактировать:

Это мой текущий интерфейс:

интерфейс приложения

Я уже закодировал For ...Следующий циклЯ опубликую этот код ниже.Теперь я должен завершить ту же концепцию, что и предварительный тест Do ... Loop.Я не могу понять, как заставить цикл отображать диапазон чисел, указанный пользователем.

Код для For ... Далее:

Private Sub btnForNext_Click(sender As Object, e As EventArgs) Handles btnForNext.Click
    ' Display a list of numbers.

    Dim intFrom As Integer
    Dim intTo As Integer

    Integer.TryParse(txtFrom.Text, intFrom)
    Integer.TryParse(txtTo.Text, intTo)
    lstNumbers.Items.Clear()

    For intList As Integer = intFrom To intTo
        lstNumbers.Items.Add(intList)
    Next intList
End Sub

Я попытался использовать Dim intList as Integer = intFrom To intTo, но это дает мне ожидаемую ошибку завершения оператора.

Ответы [ 2 ]

1 голос
/ 07 марта 2019
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    'You get the input from the user exactly like you did for the For loop
    Dim intFrom As Integer
    Dim intTo As Integer

    Integer.TryParse(TextBox1.Text, intFrom)
    Integer.TryParse(TextBox2.Text, intTo)
    ListBox2.Items.Clear()

    'You want your do loop to keep looping While the intFrom is less than or Equal to intTo
    'The trick is to increment intFrom on every iteration or you will have an infinite loop
    Do While intFrom <= intTo
        ListBox2.Items.Add(intFrom)
        intFrom += 1
    Loop
    'Alternatively
    'Here you loop will continue Until intFrom is greater than intTo
    Do Until intFrom > intTo
        ListBox2.Items.Add(intFrom)
        intFrom += 1
    Loop
    'Both are pre-tests - choose one
End Sub
0 голосов
/ 07 марта 2019

Я попробовал ваш код, и он работает, как и ожидалось, без каких-либо ошибок. Это только моя идея, но из объявления обработчика событий я вижу, что он обрабатывает событие click для кнопки "btnForNext", которое, глядя на ваш интерфейс, может не быть кнопкой, которую вы должны нажимать для "Do ... Loop Pretest" ». Может быть, вы только что закодировали событие не для той кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...