在If语句Vb.net中使用return

时间:2019-03-29 08:08:50

标签: vb.net if-statement

所以我想在If语句中使用return,即在部分代码中返回:( 我想检查条件是否在每个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 个答案:

答案 0 :(得分:2)

您需要使用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,您将退出整个FunctionSub。使用Continue For,您可以直接跳至for循环中的下一项,而无需执行Continue For下面的代码。

答案 1 :(得分:1)

删除第二个也可以完成

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

“否则继续”在这里没有任何作用