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
提交
取消