Function Isprime(n%) As BooleanDim i%Isprime = TrueFor i = 2 To n - 1If n Mod i = 0 ThenIsprime = FalseExit FunctionEnd IfNext iEnd FunctionPrivate Sub Command1_Click()Dim a%, b%, i%a = Val(Text1.Text)b = Val(Text2.Text)Text4.Text = ""For i = a To bIf Isprime(i) Then Text4.Text = Text4.Text & i & " "Next iEnd SubText4.Text = Text4.Text & i & " "中的i为什么不是str(i)
1 回答
四季花海
TA贡献1811条经验 获得超5个赞
VB会自动把i转换为字符串的。如果用了Str()反而是画蛇添足,因为它会在正数的前面添加一个空格。
在多数情况下,VB都会自动转换数据为合适的类型,比如
"123" + 123 = 246
"123" + "123" = "123123"
"123" & 123 = "123123"
但是,有时候这种自动转换有可能并不符合程序设计者的需求,所以从严谨的角度出发,仍然建议尽可能对数据类型进行显式转换,比如:
Val("123") + 123 = 246
"123" & CStr(123) = "123123" '这里建议尽量用CStr()不用Str(),因为前者不会在正数前加空格
补充说一句:凡是表达式中用&对变量进行连接的,则除对象变量外的所有变量类型VB都会先转换为字符串再进行连接,因此像Text4.Text & i & " "中的i就完全没必要主动去转换类型了;但是,如果不是用&连接,而是用的+号,比如Text4.Text + i + " ",这个就要注意了,根据Text4值的类型,VB有可能会把第一个+号当作加法运算符来看,所以这种情况下就要尽量对i进行转换了,即Text4.Text + CStr(i) + " "。另外,居于上述理由,在进行字符串连接时,建议尽量用&不要用+!
添加回答
举报
0/150
提交
取消