Foxtable(狐表)用户栏目专家坐堂 → 请教循环语句的执行顺序,老大请进


  共有15632人关注过本帖树形打印复制链接

主题:请教循环语句的执行顺序,老大请进

帅哥哟,离线,有人找我吗?
唐尸三摆手
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
请教循环语句的执行顺序,老大请进  发帖心情 Post By:2011/12/16 18:46:00 [只看该作者]

好久没来了,有个小问题请教下

DataTables("表A").DataRows.clear
For i As Integer = 0 To 4
    If i = 0  Then
        Dim nr As DataRow = DataTables("表A").AddNew
        nr("第一列") = i
    Else
        Dim drs As List(of DataRow) =  DataTables("表A").Select("第一列 = "& i-1 &"")
        For j As Integer = 0 To drs.count - 1
            Dim nr As DataRow = DataTables("表A").AddNew
            nr("第一列") = i
            nr("第二列") = j
        Next
    End If
Next

 

1.循环语句的执行顺序是从里到外,还是从外到里

2.在else条件后面,为什么已经增加了nr("第二列") = j,在循环后结果总是0呢.

[此贴子已经被作者于2011-12-16 18:46:16编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
小猪鑫鑫
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
  发帖心情 Post By:2011/12/16 20:21:00 [只看该作者]

楼主:您好!

1、从外起步,然后再执行里,里循环执行完后,再循环外;

2、因 i =o时,执行if 后的第一段代码,这时nr("第一列") =0;当i =1时,执行ELSE后的代码,这时按select中的条件选出来的行只有一行,因为等于0的行,这时才一行,所以for j as integer =0 to drs.count -1,这句代码实际上只是0 TO 0,因为drs.count =1(此时只有一行),也就是说,j 只运行了一次,此时也还是0,所以nr("第二列")也等于0,当 i =2时,执行的也是ELSE后的代码,这时选出来的符合条件的行也只有一行,道理与前面所述一样,所以nr("第二列")总是等于0.

 


 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2011/12/16 21:57:00 [只看该作者]

改进的方案是什么,请建议一下


 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2011/12/17 9:32:00 [只看该作者]

老大在吗,帮忙看下运行过程中如何获得drs.count新增加的值呢

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/17 9:46:00 [只看该作者]

二楼的解释很清楚啊:

 

Dim drs As List(of DataRow) = DataTables("表A").Select("第一列 = "& i-1 &"")

 

得到的永远是一行,j每次都是从0循环到0,所以 nr("第二列") = j ,会使得第二列永远等于0

 

没有看明白你第二列要存一个什么值,而且你的drs.Count是永远等于1的。


 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2011/12/17 9:55:00 [只看该作者]

我想达到的效果是:

i = 0时,新增记录

i = 1时,获取i= 0的记录数,

i = 2时,获取i = 1的记录数,

以此类推


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/17 10:04:00 [只看该作者]

i=0 要增加几行,i=1要增加几行,i =2要增加几行,规则是什么?

你现在的代码,其实不管这个 i 等于多少,都只是增加一行而已。

[此贴子已经被作者于2011-12-17 10:04:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2011/12/17 10:12:00 [只看该作者]

我做个小例子吧

 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2011/12/17 10:39:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目16.foxdb

这是附件

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/17 11:12:00 [只看该作者]

你只说如何增加行,新增行的各列的内容如何确定?

 回到顶部
总数 14 1 2 下一页