51Testing软件测试论坛

标题: 关于TSL——the in operator [打印本页]

作者: jiaolq_0    时间: 2007-6-13 10:06
标题: 关于TSL——the in operator
原语句如下:
for (i=0; i<5; i++)                                             #第一个for语句
{
date = time_str();
        date_array = date;
wait(5);
}
for(i=0;i<5;i++)                                              #第二个for语句                                    
{
print("date_array["i"]="date_array);
}

for (i in date_array)                                           #第三个for语句
{
print ("i= " &i);
print ("the date was " &date_array);
}
其输出结果:
date_array[0]=Wed Jun 13 10:06:11 2007
date_array[1]=Wed Jun 13 10:06:16 2007
date_array[2]=Wed Jun 13 10:06:21 2007
date_array[3]=Wed Jun 13 10:06:26 2007
date_array[4]=Wed Jun 13 10:06:31 2007
i= 0
the date was Wed Jun 13 10:06:11 2007
i= 4
the date was Wed Jun 13 10:06:31 2007
i= 1
the date was Wed Jun 13 10:06:16 2007
i= 2
the date was Wed Jun 13 10:06:21 2007
i= 3
the date was Wed Jun 13 10:06:26 2007

我的疑问:
1、变量 i 做过第二个for循环后值应该是5,那它在第三个for循环时的第一值怎么会是0呢?好像 i 值的选取没有规律啊(顺序居然是04123)?
2、把这第一二个for语句存成第一个文件,第三个for语句存成第二个文件,先执行第一个文件,再执行第二个文件。第二个文件的 i 和date_array居然是取的第一个文件的值,为什么如果在一个文件中一个变量如果没有初值,它就提取最近其他文档中的值呢?

疑问多多,请高手帮忙解答一下,非常感谢!

[ 本帖最后由 jiaolq_0 于 2007-6-13 10:31 编辑 ]
作者: dionysus    时间: 2007-6-20 13:42
这几天在家上不了网,工作的地方没有WR,所以不好准确的解答,帮lz顶一下吧,其他高手知道的解答一下sdlkfj3
作者: kolecat    时间: 2007-6-20 14:49
我把这些脚本放一块执行后,报错了,最后一段for语句执行错误。

还有,怎么查不到关于 print 语句的介绍,有个printf 但是也没有看到相关介绍,只说是保留字。 希望lz解释一下print用法sdlkfj2
[attach]27752[/attach]
作者: shiwomyw    时间: 2007-6-20 16:17
出现这错误提示的原因应该是"date_array"变量不是数值型;在我的机子上执行同样出这个错,不知道楼主是怎样执行通的?

关于"2、把这第一二个for语句存成第一个文件,第三个for语句存成第二个文件,先执行第一个文件,再执行第二个文件。第二个文件的 i 和date_array居然是取的第一个文件的值,为什么如果在一个文件中一个变量如果没有初值,它就提取最近其他文档中的值呢?"这个问题,应该是执行完脚本后,WR已经记住了date_array的值.每次都会去读取它的最新值.
不清楚,楼主做这个脚本的用途是什么,方便解释一下吗?
作者: yemen126459    时间: 2007-6-20 16:49
for (i in date_array)  中的i和date_array为不同类型!!!!!
执行过程中会有错误!
作者: 快乐逍遥    时间: 2007-6-20 16:51
1、for (i in date_array)     参考了一下wr user help, 使用in 是没指定顺序的
2、可能是你执行完第一个文件,没stop,date_array没有释放,接着运行第二个文件,就会取到之前运行得到的值喽
作者: kolecat    时间: 2007-6-20 17:30
狂晕 阿, 我找书上的例子写了一个一模一样的

for(i=0;i<5;i++)
{
date = time_str();
date_array\[i\] = date;
wait(5);
}

和楼主区别只在于我把 date_array申明成数组, date_array ,而且这也是书上的例子,居然通不过调试。
楼主那个不太能说的过去的例子居然能通过,晕死了,啥tsl阿

PS: 怎么转换方括号?? "[]",被自动过滤了


[ 本帖最后由 kolecat 于 2007-6-20 17:37 编辑 ]
作者: kolecat    时间: 2007-6-20 17:39
原来论坛会过滤 方括号"[]"。。。。。。lz脚本显示不全吧

[ 本帖最后由 kolecat 于 2007-6-20 17:40 编辑 ]
作者: jiaolq_0    时间: 2007-6-21 16:22
又执行了一遍,脚本没有报错
作者: jiaolq_0    时间: 2007-6-21 16:40
to kolecat:
print和printf差不多,都是打开一个文件,然后将内容显示在这个文件中
作者: yemen126459    时间: 2007-6-21 17:19
标题: 回复 #10 jiaolq_0 的帖子
for (i in date_array)                                           #第三个for语句
{
print ("i= " &i);
print ("the date was " &date_array);
}

这一段没报错吗?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2