Member 12726440 Ответов: 2

Как сделать вопрос " да " или " нет " с различными исходами в зависимости от входных данных?


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

Моя первоначальная идея состояла в том, чтобы сделать программу, которая приветствует и задает учителю вопрос о том, хотят ли они знать, почему программирование ценно. Когда консоль задаст вопрос, будет два варианта: Да или нет, каждый из которых имеет свой собственный текстовый вывод.

Module Module1

    Sub Main()
        REM Test
        Dim Yes As String
        Dim No As String
        Console.WriteLine("Hello, Would you like to know why programming is valuable? Yes or No")
        Yes = Console.ReadLine
        No = Console.ReadLine
        If Console.ReadLine = Yes Then
            Console.WriteLine("Well...1")
        End If
        If Console.ReadLine = No Then
            Console.WriteLine("Well...2")
        End If

    End Sub

End Module


Это работает, но я должен поставить "да" на консоль три раза, прежде чем появится "Ну...1", а когда я проверяю его с помощью "Нет", "ну...1" появляется вместо "Ну...2". иногда "Ну...2" появляется, но это редко.

Что я уже пробовал:

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

2 Ответов

Рейтинг:
2

Patrice T

Цитата:
Это работает, но я должен поставить "да" на консоль три раза, прежде чем появится "Ну...1", а когда я проверяю его с помощью "Нет", "ну...1" появляется вместо "Ну...2". иногда "Ну...2" появляется, но это редко.
Это именно то, что вы просили сделать вашу программу.

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

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
0

Garth J Lancaster

вы делаете там много консольных строк ... вы уверены, что вам нужно так много ? как насчет чего-то вроде (используя одну переменную для хранения ответа, а не одну для да и нет)

Dim answer As String
Console.WriteLine("Hello, Would you like to know why programming is valuable? Yes or No")
StringComparison comparison = StringComparison.OrdinalIgnoreCase 
answer = Console.ReadLine
If answer.Contains("yes", comparison) Then
    Console.WriteLine("Well...1")
End If
If answer.Contains("no"), comparison Then
    Console.WriteLine("Well...2")
End If


обратите внимание, что (если я сделал это правильно), не имеет значения, если они вводят "да", "да" или "Да, это так" - StringComparison и contains справятся с этим - затем вы можете сделать больше работы над "ответом" в ваших проверках If/End-If

разве это облегчает жизнь ?