For循环If条件 - 当条件不满足时迭代
我有这段代码,我希望这个循环为每一行迭代。但是,如果if条件为false,则此代码不会迭代。
我在其他部分尝试过“继续”,但它没有奏效。即使如果我将msgbox放入其他部分并在每次显示时单击msg框,循环都会继续。但它不实用,因为我有1000行要检查。For循环If条件 - 当条件不满足时迭代
Public Function SMS()
CustomerTableAdapter.Fill(MyHotelManagementSystemDataSet63.Customer)
For i = 0 To MyHotelManagementSystemDataSet63.Customer.Rows.Count - 1
If MyHotelManagementSystemDataSet63.Customer(i).DOB.Day = Date.Now.Day AndAlso _
MyHotelManagementSystemDataSet63.Customer(i).DOB.Date.Month = Date.Now.Month Then
Dim SerialPort As New System.IO.Ports.SerialPort()
If SerialPort.IsOpen Then
SerialPort.Close()
End If
SerialPort.PortName = "COM29"
SerialPort.BaudRate = 9600
SerialPort.Parity = Parity.None
SerialPort.StopBits = StopBits.One
SerialPort.DataBits = 8
SerialPort.Handshake = Handshake.RequestToSend
SerialPort.DtrEnable = True
SerialPort.RtsEnable = True
SerialPort.NewLine = vbCrLf
Dim message As String
Dim nm = MyHotelManagementSystemDataSet63.Customer(i).Name
Dim tp = MyHotelManagementSystemDataSet63.Customer(i).Telephone
message = "Dear " + nm + " ***)"
SerialPort.Open()
If SerialPort.IsOpen() Then
SerialPort.Write("AT" & vbCrLf)
SerialPort.Write("AT+CMGF=1" & vbCrLf)
SerialPort.Write("AT+CMGS=" & Chr(34) & tp & Chr(34) & vbCrLf)
SerialPort.Write(message & Chr(26))
SerialPort.Close()
Else
MsgBox("Port not available")
End If
Else
End If
Next
Return True
End Function
Pleaes帮我做这个for循环继续,不需要任何用户交互。
你检查,如果Rows.Count设置,而不是0
如果情况并非如此
For i = 0 To CustomerDataSet.customer.Rows.count - 1
if i < 2 Then
'Do something
Else
Continue For
End If
Next
Veenman行数没有设置,正如我前面提到的,如果我在其他部分中设置了一个msg框并在每次出现时单击它,循环将继续。但我想要的是在其他部分有直接执行到下一行的内容,对于其他部分应该有什么?请帮忙 – A1990
@ A1990编辑:只要代码进入Else块,它将进入For循环的下一个迭代(例如,如果I = 2,它将进入第4次迭代(然后我= 3))我认为这是你正在寻找的 – DieVeenman
执行将继续到下一行没有在else语句中的任何代码 – Fabio
使用Exit For
如果你不想条件后返回迭代行false
For i = 0 To CustomerDataSet.customer.Rows.count - 1
If condition = false Then Exit For
'Do something for rows which condition = true
Next
使用Continue For
如果你想迭代到下一行不执行你的DoSomething
代码
For i = 0 To CustomerDataSet.customer.Rows.count - 1
If condition = false Then Continue For
'Do something for rows which condition = true
Next
您的问题不清楚。你说“不要交际”是什么意思?为什么? – DarkKnight
实际上,如果'i> = 2',循环会自动持续。你不需要明确地调用“继续”。 –
循环从'0到CustomerDataSet.customer.Rows.count - 1'进行迭代,但是因为你的'If'只有'0'和'1''Do somethin''的值。 – Enigmativity