关于生成所需位数的随机数的问题

hongyanyufei 2004-12-05 11:54:54
Rem 生成所需位数的随机数(随机数为字符串类型格式)
Public function CreateRan(LenBit)
Randomize
dim LenBit_tmpnum,LenBit_tmp
if not isNumeric(LenBit) then Exit function
LenBit_tmpnum=empty
for i=1 to LenBit
LenBit_tmp=LenBit_tmp&9
next
CreateRan=Cstr(int(LenBit_tmp*rnd))
Do while Len(CreateRan)<>Clng(LenBit)
CreateRan=Cstr(int(LenBit_tmp*rnd))
Loop
End function

刚接触ASP不久,菜鸟一个。对于这个代码,有如下问题,请帮忙解答一下,先谢了:)
1、 LenBit_tmp=LenBit_tmp&9是什么意思?&是连字符还是与运算?LenBit_tmp的默认值是什么?
2、Do while循环是在For循环外还是在For循环内?

...全文
164 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hongyanyufei 2004-12-08
呵呵,不好意思,自己顶一下
回复
wen1818 2004-12-05
<%

function Random(m)
Randomize
for i=1 to m
Random=Random&cint(rnd*9)
next
end function
%>
回复
iuhxq 2004-12-05
我以前写过一个这样的函数呀!!!

晕,再帮你写一次吧
<%
response.write myRnd(10)

function myRnd(l)
Randomize
for i=1 to l
myRnd=myRnd&cint(rnd*9)
next
end function
%>
回复
madpolice 2004-12-05
连接运算符 (&)
请参阅
连接运算符 | 运算符优先级 | 运算符总结
要求
版本 1
强制两个表达式进行字符串连接。

result = expression1 & expression2
参数
result
任意变量。
expression1
任意表达式。
expression2
任意表达式。
说明
任一 expression 不是字符串时,它将被转换为 String 子类型。如果两个表达式都为 Null,result 也为 Null。然而,如果仅有一个 expression 为 Null,则它和其他表达式连接时,按零长度字符串("") 处理。任何表达式为 Empty 时也按零长度字符串处理。

要求
版本 1

请参阅
连接运算符 | 运算符优先级 | 运算符总结



--------------------------------------------------------------------------------

© 2001 Microsoft Corporation. 保留所有权利。

回复
elong2004 2004-12-05
错了,刚刚试了一下,LenBit_tmp&9 表示字符连接,不好意思
回复
madpolice 2004-12-05
补充上面的回答

LenBit_tmp的默认值是什么?
是empty,empty是vbscript关键字,Empty 关键字用于指明未初始化的变量值。此关键字与 Null 并不相同。
回复
madpolice 2004-12-05
LenBit_tmp=LenBit_tmp&9是什么意思?
是字符串连接,数字9当成字符串。

&是连字符还是与运算?
是连接字符串

LenBit_tmp的默认值是什么?
上面写了是empty,empty是vbscript关键字,Empty 关键字用于指明未初始化的变量值。此关键字与 Null 并不相同。

Do while循环是在For循环外还是在For循环内?
外,因为for跟next之间的是循环体。
回复
elong2004 2004-12-05
if not isNumeric(LenBit) then Exit function
表示不是数字就退出返回
LenBit_tmp&9 是表示与运算!
do while 在 for 之外
回复
skyboy0720 2004-12-05
字符串连接
回复
hongyanyufei 2004-12-05
谢谢大家了:)
再接着问,呵呵:)
假设传入的参数LenBit是5的话,那么CreateRan=Cstr(int(LenBit_tmp*rnd))这句是不是生成一个0-99999之间的一个整数?那么Do while那段语句有什么用呢?Len(CreateRan)<>Clng(LenBit)应该是判断CreateRan的位数是不是5(LenBit)?实际上这只能生成一个10000-99999之间的一个整数是不?
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2004-12-05 11:54
社区公告
暂无公告