используя возврат в If Statement Vb.net - PullRequest
0 голосов
/ 29 марта 2019

, поэтому я хочу использовать возврат в операторе If, который возвращается в части кода :( я хочу проверить, действительно ли условие в каждой ячейке DataGridView, поэтому он проверит первое значение, если условие недействительно, то проверит второе значение без каких-либо действий. Я надеюсь, что это ясно

For i As Integer = 0 To DataGridView1.RowCount - 1
                    ' ruturn here !
                    If DataGridView1.Rows(i).Cells(6).Value = dt.Rows(0)(5) Then

                        DataGridView1.Rows(i).Cells(4).Value += 1
                    Else
                        If i = DataGridView1.RowCount - 1 Then
                            DataGridView1.Rows.Add(i + 1, dt.Rows(i)(0), dt.Rows(i)(1), dt.Rows(i)(2), qnt, dt.Rows(i)(4), dt.Rows(i)(5))
                        Else
                            Return 'return to scan the second row ( i = 1,2,3... etc)
                        End If
                    End If
                Next

Ответы [ 2 ]

2 голосов
/ 29 марта 2019

Вам нужно использовать Continue For вместо Return. Итак, ваше решение выглядит следующим образом:

For i As Integer = 0 To DataGridView1.RowCount - 1
    If DataGridView1.Rows(i).Cells(6).Value = dt.Rows(0)(5) Then
        DataGridView1.Rows(i).Cells(4).Value += 1
    Else
        If i = DataGridView1.RowCount - 1 Then
            DataGridView1.Rows.Add(i + 1, dt.Rows(i)(0), dt.Rows(i)(1), dt.Rows(i)(2), qnt, dt.Rows(i)(4), dt.Rows(i)(5))
        Else
            Continue For
        End If
    End If
Next

С Return вы выходите из целого Function или Sub. С Continue For вы непосредственно переходите к следующему элементу цикла for, не выполняя код под Continue For.

1 голос
/ 30 марта 2019

Удаление второй операции также выполнит эту работу.

For i As Integer = 0 To DataGridView1.RowCount - 1 
    If DataGridView1.Rows(i).Cells(6).Value = dt.Rows(0)(5) Then
    DataGridView1.Rows(i).Cells(4).Value += 1
Else If i = DataGridView1.RowCount - 1 Then
    DataGridView1.Rows.Add(i + 1, dt.Rows(i)(0), dt.Rows(i)(1), dt.Rows(i)(2), qnt, dt.Rows(i)(4), dt.Rows(i)(5)) 
    End If 
End If 
Next

. Если не выйти вручную, цикл все равно продолжит проверку, если i = DataGridView1.RowCount - 1

"Иначе продолжить для"здесь ничего не делается

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