Моя учебная книга делает следующее утверждение о коде ниже:
** "Компьютер оценивает условие цикла в статистике цикла Do ..., чтобы определить, должны ли обрабатываться инструкции цикла. В этом случае условие inputales <> String.Empty сравнивает соответствие входной переменной продаж значению String.Empty.Как вы знаете, значение String.Empty представляет нулевую длину или пустую строку, если переменная inputales пуста, условие цикла принимает значение True, и компьютер обрабатывает инструкции цикла . * Если, с другой стороны, переменная inputales не пуста, условие цикла оценивается как ложное, и компьютер пропускает инструкции цикла.
Основываясь на коде, я думаю, что все наоборот: ... что, хотя значение inputales не пусто, оно должно принимать значение true и обрабатывать цикл, а если оно пустое, оно должно вычислять значение false и пропустить цикл? Пожалуйста, смотрите ниже. Большое спасибо за помощь!
Option Explicit On
Option Strict On
Imports System.Globalization
Public Class SalesForm
Private Sub exitButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles exitButton.Click
Me.Close()
End Sub
Private Sub calcButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles calcButton.Click
Const prompt As String = "Enter a sales amount. Click cancel to end."
Const title As String = "Sales Entry"
Dim inputsales As String
Dim sales As Decimal
Dim salesCounter As Integer
Dim salesaccumulator As Decimal
Dim salesAverage As Decimal
Dim isconverted As Boolean
inputsales = InputBox(prompt, title, "0")
**Do While inputsales <> String.Empty
isconverted = Decimal.TryParse(inputsales, NumberStyles.Currency, NumberFormatInfo.CurrentInfo, sales)
If isconverted = True Then
salesCounter = salesCounter + 1
salesaccumulator = salesaccumulator + sales
Else
MessageBox.Show("Please re-entere the sales amount.", "sales Express", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
inputsales = InputBox(prompt, title, "0")
Loop**
If salesCounter > 0 Then
salesAverage = salesaccumulator / Convert.ToDecimal(salesCounter)
averageLabel.Text = salesAverage.ToString("C2")
Label2.Text = salesCounter.ToString
Else
averageLabel.Text = "0"
End If
End Sub
End Class