问个关于for each循环的问题

jackson5 2007-01-08 07:32:46
由于我是刚开始学习 VB2005 ,并且也没有什么编程基础,我问的问题,可能在高手眼里看来很简单,但是我真的是不会!
我买了本书,叫做“VB2005入门经典”清华大学出版社的
如果大家有这本书的话,可以看一下,是在100页
代码如下:
private sub btn_click(byval e as system.object, byval sender as _ system.args) handles btn.click
for each strname as string in my.computer.filesystem.getdirectories _("c:\")

listbox.items.add(strname)

next
对于以上代码,我有一下几点不明白!
1:在for each ............那行,为什么要用 in 这个词?
2:以下是我对这个循环的理解:
一开始,getdirectories把得到的C盘的第一个文件夹的名字赋予变量strname
然后把strname的值,存储,
接着用listbox.items.add方法把strname的值的值添加到列表中

但是,当运行到NEXT语句时,我不知道是什么回事了,
是NEXT把strname的值转到for each 语句后,还是.......
哎呀,我现在都糊涂了,是什么决定这个循环的中止呢?
3:这个NEXT的作用是什么?
4:谁能给我说一下这个循环的详细流程呢?谢谢大家了!
5: for each next 和 for next 有什么区别?

第一次发帖子,不知道能不能得到答案,哈哈

预祝大家新年快乐,万事如意!
...全文
415 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
水如烟 2007-01-09
  • 打赏
  • 举报
回复
你可以参考IEnumerator
水如烟 2007-01-09
  • 打赏
  • 举报
回复
上面是"在座的每个人",现在打字总错.
水如烟 2007-01-09
  • 打赏
  • 举报
回复
这倒是没什么研究的.
词法问题,人性化口语化的语法.

比如,在座的第个人,它是这样的:

For Each 他 As 人 In 在座的所有人
Console.WriteLine(他.姓名)
Next Each

而For i=0 To 10,那是计数的,日常的就是从哪号到哪号.
如在座的人都编了号的,就是
For i As Integer = 0 To 10
Console.WriteLine(人(编号).姓名)
Next i
adairjamezhome 2007-01-09
  • 打赏
  • 举报
回复
Repeats a group of statements for each element in a collection.

For Each element [ As datatype ] In group
[ statements ]
[ Exit For ]
[ statements ]
Next [ element ]

Parts:
[element]
Required. Variable. Used to iterate through the elements of the collection. The data type of element must be such that the data type of the elements of group can be converted to it.
[datatype]
Required if element is not already declared. Data type of element. If element is declared outside this loop, you cannot use the As clause to redeclare it.
[group]
Required. Object variable. Must refer to an object collection or array.
[statements]
Optional. One or more statements between For Each and Next that are executed on each item in group.


leq_82 2007-01-09
  • 打赏
  • 举报
回复
补充:

一般循环:
for i as int 16=0 to 10 step 1 '/////这里的i数值型变量,to后是一个具体数值或有具体数值的变量,它和C语言中的For循环功能相同
next

而For Each ...Next 用来遍历集合中的每一项
for each strname as string in my.computer.filesystem.getdirectories _("c:\")
/////in后面是个集合,是strname变量类型的集合

listbox.items.add(strname)

next

是什么决定这个循环的中止?;当遍历完集合中的每一项时边便终止,你也可以强制终止这个循环.用Exit For这条语句便可


Each循环:
each = 每一个,单个
in = 范围
next = 下一个
“my.computer.filesystem.getdirectories _("c:\")”这句就是确定范围:C盘下所有目录名称。相等于一般循环中的10
“strname ”就是每次循环的临时载体。相等于一般循环中的i(不停变化)
jackson5 2007-01-09
  • 打赏
  • 举报
回复
引用
[quote name = lzmtw(水如烟) ]这倒是没什么研究的.
词法问题,人性化口语化的语法.

比如,在座的第个人,它是这样的:

For Each 他 As 人 In 在座的所有人
Console.WriteLine(他.姓名)
Next Each

而For i=0 To 10,那是计数的,日常的就是从哪号到哪号.
如在座的人都编了号的,就是
For i As Integer = 0 To 10
Console.WriteLine(人(编号).姓名)
Next i

请问最后的NEXT后面为什么还要跟个 I 啊?
谢谢
zheninchangjiang 2007-01-08
  • 打赏
  • 举报
回复
穷举循环
string 是一个item
my.computer.filesystem.getdirectories _("c:\")--items
getdirectories把得到的C盘的第一个文件夹的名字
next 处理完一个再来一个
语法的改进,大概是要吸引C/JAVA程序员

循环就在于条件判断,each item in items-当item为null时,则条件为false,跳出循环体
vinsonhwj 2007-01-08
  • 打赏
  • 举报
回复
一般循环:
for i as int16=0 to 10 step 1
next

Each循环:
each = 每一个,单个
in = 范围
next = 下一个
“my.computer.filesystem.getdirectories _("c:\")”这句就是确定范围:C盘下所有目录名称。相等于一般循环中的10
“strname ”就是每次循环的临时载体。相等于一般循环中的i(不停变化)

16,720

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧