我查了一下好像在VB中没有CONTINUE这样的函数,说有GOTO,可是在脚本中为什么用了呢,
For i=1 To 7
If (i Mod 2)=0 Then
Goto NextFor
End If
MsgBox i
NextFor
Next
我这样说第一个GOTO那里有错误什么的,在VB脚本中这个是怎么用的?
For i=1 To 7
If (i Mod 2)=0 Then
Goto NextFor
End If
MsgBox i
NextFor
Next
我这样说第一个GOTO那里有错误什么的,在VB脚本中这个是怎么用的?
If (i Mod 2)=0 Then
Goto NextFor
End If
MsgBox i
NextFor
Next
nextFor:
......
For i=1 To 7
If (i Mod 2)=0 Then
Goto flag
End If
MsgBox i
NextFor
Flag:
Next
For i=1 To 7
If (i Mod 2)=0 Then
Call flag
Next
End If
MsgBox i
NextFor
Next
这样可以吗?
For i=1 To 7
If (i Mod 2)=0 Then
exit for
End If
MsgBox i
Next
For i=1 To 7
If (i Mod 2)=0 Then
MsgBox i
End If
Next
直接这样写不就行了
应该就可以满足了吧,还要那么麻烦,要什么goto,汗啊...
For i=1 To 7
If (i Mod 2)=1 Then
msgbox i'这里要做很多其他的事的
End If
Next
Private Sub Command1_Click()
Dim i As Integer
For i = 1 To 7
If (i Mod 2) = 0 Then
GoTo Flag
End If
MsgBox i
Flag:
Next
End Sub
用这个吧,我测过啊,弹出来1,3,5,7的,不会错的,你把上面的完整的考过去在新程序里面看,我试没问题的啊
MsgBox i
Next
If (i Mod 2) Then
MsgBox i
End If
Next
If (i Mod 2)=0 Then
Call flag
Next
End If
MsgBox i
NextFor
Next
老兄,不用goto可以不??你加上 goto也可以的啊
<过程体>
……
NEXT 变量 ‘或者NEXTFOR 是一样的这是词句格式,不是行标号,GOTO语句需和行标号结合使用,行标号格式:
标实符:
注后边必有冒号!!!
不过这种写法很不规范,好的程序员是不会用goto的,会造成程序混乱不堪,如果我拿到一个程序中有goto,我会很鄙视此程序的编写者的,切记切记
===================================================
你鄙视那是因为你的无知,不要人云亦云
goto用得好,只会让程序更清晰明了
后来被认为不好(被鄙视)
再后来又被认为好(在合理运用的前提下)好象正好符合哲学里的什么原理
呵呵....
for i=1 to Data.RecordCount
if Data("ID")="1" then
end ifnext
呵呵,谢谢大家的回复,我的目的是这样的,我用的是VB脚本,我从数据库中查询出记录来
for i=1 to Data.RecordCount
if Data("ID")="1" then//这里面有些记录不符合条件,所以不做下面的Do SomeThing处 理, 所以想在这里继续下一个循环的
//继续下一条记录
end if
//Do SomeThing
next
不知道这样明白我的意思吗
if Data("ID")<>"1" then //如果 Data("ID")="1" ,是不会Do SomeThing的,直接跳到下一个循环
//Do SomeThing
end if
next
for i=1 to Data.RecordCount
if Data("ID")<>"1" then //这里的Do SomeThing 的代码很多,行也多,可能看起来不好看
//Do SomeThing
end if
next
为了看起来好看,所以想一下,比如说有continue这样的方法
for i=1 to Data.RecordCount
if Data("ID")="1" then
continue
end if
//Do SomeThing
//Do SomeThing
//Do SomeThing
//Do SomeThing
//Do SomeThing
//Do SomeThing
//Do SomeThing
//Do SomeThing
//Do SomeThing
//Do SomeThing
next
想这样,在看和维护的时候感觉都很方便的
if Data("ID")="1" then
goto NextFor
end if
//Do SomeThing
//Do SomeThing
//Do SomeThing
//Do SomeThing
//Do SomeThing
//Do SomeThing
//Do SomeThing
//Do SomeThing
//Do SomeThing
//Do SomeThing
NexeFor: '<-----注意,这里的冒号不能去掉
next
goto用得好,只会让程序更清晰明了------------------------------------
我可能无知,但是你不能就凭这点来说服我不鄙视用goto的傻货,毕竟在我多年的从业经验里,用好goto的傻货我从来没见过,当一个大型的项目里面突然有个傻货用了一个goto把你goto 到不知道那里去的时候,你就该知道这种不用goto的习惯是多么的难能可贵了.而且,这只是我从以往经验中得到的个人喜好而已,好象跟无不无知无关.但是,请用另一种让我信服的理由来让我不鄙视用goto的傻货可否?用的好,何谓用的好?你能把握吗,其实我也用goto,我在大量的代码里面用on error goto XXX,我自问这个goto的自由度太大了点,我把握不好,也没有见过能用到出神入化的,包括一些我比较崇拜的高人们.当初学basic的时候大家都是goto上来的,我从来没想过有朝一日对goto是这么的深恶痛绝,这是以往的惨痛经验让我这样的痛恨goto.
而且,你说我无知,你又有多有知呢,看你这么为goto张目,估计也是一新手上路,还没见识过goto 的厉害吧,你个傻货,等着让goto把你goto到天外吧
Do While i < {记录数}
i = i + 1
If {条件} Then Loop
'Do something
Loop
知道现在的牛人是谁吗?真正的牛人是团队,现在没有一个牛人可以牛过一个团队的,没有团队意识,等着被淘汰吧,傻货
<script language="VBScript" >
For i=1 To 7
If (i Mod 2) Then
Goto NextFor'说这里有错误的
End If
MsgBox i
NexeFor: '<-----注意,这里的冒号不能去掉
Next
</script>
</job><job>
<script language="VBScript" >
i = 0
Do While i < 7
If (i Mod 2) Then
Loop'说这里缺少DO
End If
MsgBox i
Loop
哎呀,真麻烦,说有错误,希望几位大侠给看看的
</script>
</job>
只要在GOTO 后加上注释,也不会降低代码的可读性.
Goto毕竟是太活跃了
<job>
<script language="VBScript" >
For i=1 To 7
If (i Mod 2) Then
Goto NextFor'说这里有错误的
End If
MsgBox i
NexeFor: '<-----注意,这里的冒号不能去掉
Next
</script>
</job><job>
<script language="VBScript" >
i = 0
Do While i < 7
If (i Mod 2) Then
Loop'说这里缺少DO
End If
MsgBox i
Loop
哎呀,真麻烦,说有错误,希望几位大侠给看看的
</script>
</job>
少loop是因为的你的LOOP在if语句里,所以不会执行,所以vb报告缺少loop
把loop放到if后就可以了,而缺少do就是vb检测不出你写do,因为被if屏蔽掉了
这是你的问题,也就是你代码出现的问题,建议不要使用这种方法问题很多。
至于代码你写的比较乱,可以按照我的思路,重新写,就这样的程序问题肯定多
本示例使用 GoTo 语句在一个过程内的不同程序段间作流程控制,不同程序段用不同的“程序标签”来区隔。Sub GotoStatementDemo()
Dim Number, MyString
Number = 1 ' 设置变量初始值。
' 判断 Number 的值以决定要完成那一个程序区段(以“程序标签”来表式)。
If Number = 1 Then GoTo Line1 Else GoTo Line2
Line1:
MyString = "Number equals 1"
GoTo LastLine ' 完成最后一行。
Line2:
' 下列的语句根本不会被完成。
MyString = "Number equals 2"
LastLine:
Debug.Print MyString ' 将“"Number equals 1"”显示在“立即”窗口。
End Sub出自msdn...