#vb.net #visual-studio #loops #charts
#vb.net #visual-studio #циклы #Диаграммы
Вопрос:
Я перебираю список десятичных дробей и использую оператор if, чтобы перехватывать любые ненужные данные и не отображать их, если они появляются в списке, хотя оператор if, похоже, не улавливает это, и ненужные данные все равно отображаются. Я пробовал Continue для и вообще выйти из подзаголовка, но, похоже, он редко перехватывается. Мой код ниже:
For i = 1 To 8
If hotTemps(i - 1) > 3000 Or hotTemps(i - 1) < -400 Then
Continue For
End If
If celsius.Checked And sysTime.Checked Then
Chart1.Series(i - 1).Points.AddXY(TimeOfDay.ToString("HH:mm:ss"), CDec(hotTemps(i - 1)))
ElseIf fahrenheit.Checked And sysTime.Checked Then
Chart1.Series(i - 1).Points.AddXY(TimeOfDay.ToString("HH:mm:ss"), CDec((hotTemps(i - 1))) * 1.8 32)
ElseIf celsius.Checked And elapsedTime.Checked Then
Chart1.Series(i - 1).Points.AddXY(elapsed, CDec(hotTemps(i - 1)))
ElseIf fahrenheit.Checked And elapsedTime.Checked Then
Chart1.Series(i - 1).Points.AddXY(elapsed, CDec((hotTemps(i - 1))) * 1.8 32)
End If
Next
Комментарии:
1.
Or
В первомIf
операторе это сделает … если любой из них верен, то он будет продолжаться.2. опубликуйте содержимое массива hottemps / определение функции hottemps
3. Ну, в значительной степени проблема отладки, поэтому действительно пошаговое выполнение кода и проверка состояния в каждой точке должны дать ваш ответ. Однако я вижу одну вещь: i = от 1 до 8, тогда вы проверяете, превышает ли i-1 3000 или меньше -400. i никогда не будет где-либо вблизи этих верхних или нижних пределов, поэтому ваш Continue For просто никогда не сработает
4. @Hursey, сравнения с 3000 и -400 не выполняются
i - 1
, а скорееhotTemps(i - 1)
.5. @jmcilhinney. Совершенно верно, когда-нибудь научусь читать. Пункт об отладке все еще остается в силе, хотя
Ответ №1:
Упростите свой цикл, чтобы проверить свою логику.
Dim lst As New List(Of Integer)
For a = 0 To 7
If a > 6 Or a < 3 Then
Continue For
End If
lst.Add(a)
Next
For Each i In lst
Debug.Print(i.ToString)
Next
Это приводит к
3
4
5
6
Это ожидаемый результат?