| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1401 人关注过本帖
标题:求哪位好心人帮忙看下下面这段小程序为何会报错
只看楼主 加入收藏
btt6
Rank: 2
等 级:论坛游民
帖 子:46
专家分:10
注 册:2016-8-13
结帖率:47.83%
收藏
 问题点数:0 回复次数:5 
求哪位好心人帮忙看下下面这段小程序为何会报错
Private Sub Command1_Click()
Dim a(1 To 11) As Integer
Dim i As Integer
Dim d
For i = 1 To 11
a(i) = i
Next i
  For Each d In a
   
    If d >= 5 And d <= 8 Then
        Continue For
    End If
    If d = 10 Then
        Exit For
    End If
    Print d
Next
2016-09-14 14:39
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
        Continue For
这句直接红色,语法错误。
你这里要干什么?
循环里,一般只写 退出的代码,不退出继续循环使用空语句。

授人于鱼,不如授人于渔
早已停用QQ了
2016-09-14 15:14
btt6
Rank: 2
等 级:论坛游民
帖 子:46
专家分:10
注 册:2016-8-13
收藏
得分:0 
这个是msdn上的一段代码,目的是输出小于5或大于8 的数,为何在vb6里直接报错啊


[此贴子已经被作者于2016-9-14 16:03编辑过]

2016-09-14 16:00
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
首先 确认 VB6 不支持 Continue 关键字。
你查的 MSDN 是哪个语言版本的?? 2005 支持这个关键字,但 不支持 print 关键字。

这个关键字的意思就是 跳过后面的循环内容,开始下一次的循环。
在VB6里,代替的方案有:
1、使用 GOTO 命令。结构化编程规范不建议使用。
2、使用 大型的 IF ..  THEN ..    ELSE   ..    END IF 组进行判断。

程序代码:
Dim a(1 To 11) As Integer
Dim i As Integer
Dim d
For i = 1 To 11
a(i) = i
Next i
  For Each d In a    
    If d >= 5 And d <= 8 Then
    'Continue For
    '继续下一次循环,本次循环处理内容为空
    Else        '条件不成立时,执行循环内容
        If d = 10 Then
            Exit For
        End If
        Print d
    End If
Next

授人于鱼,不如授人于渔
早已停用QQ了
2016-09-14 17:27
zhuyangzhao
Rank: 1
来 自:杭州
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-8-27
收藏
得分:0 
路过,学习了!
2016-09-16 09:18
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:0 
程序代码:
Private Sub Command1_Click()
Dim a(1 To 11) As Integer
Dim i As Integer, k As Integer
Dim d
For i = 1 To 11
a(i) = i
Next i
aa:
  For Each d In a
  k = k + 1
    If d >= 5 And d <= 8 Then
       ' Continue For    'VB没有这个语句,不清楚你使用这个语句的意图
       GoTo aa      '可以模拟Goto方法重新进入FOR
    End If
    If d = 10 Then
        Exit For
    End If
    Print d;
    If k Mod 9 = 0 Then Print
    If k >= 100 Then Exit For   '这里必须有退出循环的语句,否则可能形成死循环
Next
End Sub

Continue For   VB没有这个语句,不清楚你使用这个语句的意图,有实际意义吗? GoTo aa  可以模拟Goto方法重新进入FOR,但你的判断语句 If d >= 5 And d <= 8 Then 始终是成立的,因此没有结束循环语句,肯定是死循环。
在VB中一般使用 Exit For 退出循环,或 Goto 语句跳转,或 Exit Sub 退出过程语句,但再次重新进入循环的程序非常少见,例如你的这个程序。

请不要选我!!!
2016-09-16 11:45
快速回复:求哪位好心人帮忙看下下面这段小程序为何会报错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040194 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved