Dan Schmidt Ответов: 2

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


Пытаюсь заставить этот код работать так, что стоимость собранных в хорошем калории
отображается в основном

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

Sub Main()
    Dim lv_foodCalories As Double
    getCalories(lv_foodCalories)
    Console.WriteLine("You food contains {0} calories.", lv_foodCalories)
    Console.ReadLine()
End Sub

Sub getCalories(pv_calories As Double)
    Dim lv_userInput As String
    Do
        Console.Write("How many are in your food?: ")
        lv_userInput = Console.ReadLine
        If IsNumeric(lv_userInput) Then
            pv_calories = CDbl(lv_userInput)
        End If
    Loop
End Sub

[no name]

Если вы узнали что-нибудь из своих прошлых "вопросов", что показал вам отладчик, когда вы переступили через свой код? Вот вам и ответ.

Dan Schmidt

не думаю, что я знаю, как им пользоваться...

[no name]

Затем вам нужно вернуться к своим другим ответам и на этот раз действительно прочитать их.

Dan Schmidt

Я просто нажал кнопку debug в верхней части Visual studio,и она запускает программу... она не проходит через мой код.

2 Ответов

Рейтинг:
1

Patrice T

Цитата:
Я просто нажал кнопку debug в верхней части Visual studio,и она запускает программу... она не проходит через мой код.

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

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.
Отладчик-Википедия, свободная энциклопедия[^]
Visual Basic / Visual Studio Video Tutorial-Базовая Отладка-YouTube[^]
Visual Basic Tutorial-Отладка Ваших Приложений-YouTube[^]


Рейтинг:
0

Mehedi Shams

Привет Dan,

Воспользуйся ByRef ключевое слово в объявлении параметра. По умолчанию VB.NET использует ByVal что означает sub получает новую копию параметра, и любое изменение, которое он вносит в параметр, производится в эту копию, а не в предполагаемую.

Sub getCalories(ByRef pv_calories As Double)
Кроме того, я не вижу никакой логики завершения в цикле while, он будет продолжать спрашивать вечно. Вам нужно поставить некоторую логику завершения, например-выход после ввода номера.
If IsNumeric(lv_userInput) Then
    pv_calories = CDbl(lv_userInput)
    Exit Sub
End If