第六課 小數點代碼分析及For循環語句

 這節課我們來分析一下小數點按鈕的代碼,這段代碼用到了for循環及if語句,if語句上節課已講過了,這節課着重講一下for循環語句。

for循環有兩種形式:
1、For Each.…Next 針對一個數組或集合中的每個元素,重複執行一組語句。
這種循環以後再講
2、For…Next 以指定次數來重複執行一組語句。
語法:
(從) (到) (每次+)
for 變量=初始值 To 結束值 [Setp 步長]
語句1
語句2
語句N
Next 變量

當每次變量加1的情況下,中括號裏的“Setp 步長”可以不寫,如果變量每次加的不是1,是其它數字,這句不可省略。

當程序運行到“Next 變量”時,就會做一個加法運算:變量=變量+步長,比如變量原來等於1,步長設爲2,當運行到這句時,變量就變成:1+2=3了,然後程序又返回第一句:for 變量=初始值 To 結束值 [Setp 步長],到了這裏程序會自動用變量的值跟結束值比較一下,如果變量小於或等於結束值,程序就再執行一次循環體裏的語句,如果大於結束值,就直接跳過循環,執行“Next 變量”之後的語句了。當然,不是一定要執行到變量大於結束值纔可以跳出循環,可以在循環體內設置一個條件,當滿足這個條件就用“Exit For”來跳出循環,我們的小數點按鈕就用了這種方法。下面我們來分析小數點的代碼。

程序思路:
要確定文本框中的字符是否包含小數點,必須一個字符一個字符地跟“.”比較,如果該字符等於“.”,就說明文本框中的字符包含小數點,這時就可以跳出循環了,因爲我們的目的已達到。當然,你可以不跳出循環,讓它比較完所有字符,程序也不會出錯,只是程序運行時間增加了,程序的效率降低了。如果找到小數點,要把這個信息用一個變量來保存起來,因爲我們要根據找到或沒找到小數點來決定小數點按鈕按下去後,文本框裏的字符後面是否加小數點。如果找到小數點,就不能再加小數點了,如果沒找到,就在後面加一個小數點。因爲是否找到小數點只有兩種狀態:找到或沒找到,所以就把保存是否找到小數點的信息的變量定義爲布爾型數據,這種數據只有兩種值True/False,用中文表示就是:是/否。你也可以定義成字符型或數字型,然後用不同的值來表示是否找到,只要你知道是什麼意思就可以了,不過如果只存在兩種狀態的話,最好用布爾型。

程序思路的第一句話我提到了要一個字符一個字符地跟“.”比較,但文本框裏的字符是一串,如何把它們分解成一個一個呢?用Mid函數!
Mid函數的語法:
變量=Mid(字符串,從第幾個字符開始截取,要截取幾個字符)
如:i=Mid(“Hello!”, 5, 1)表示從第5個字符開始截取,要截取1個字符。運行這句程序之後,I就等於o了。程序分析得差不多了,下面註釋一下各語句:

Private Sub cmdPoin_Click()
Dim i As Integer ‘定義變量i,讓它做爲循環變量
Dim j As String ‘定義變量j,讓它保存mid函數截取下來的字符
Dim PoinTag As Boolean ‘定義變量PoinTag,讓它保存是否找到小數點標誌
For i = 1 To Len(txtResult) ‘從1循環到字符長度,注:Len函數返回字符長度
j = Mid(txtResult, i, 1) ‘截取第i個字符賦值給j
If j = "." Then ‘如果j等於小數點
PoinTag = True ‘把找到小數點的信息保存到頂變量pointag中
Exit For ‘跳出循環體,不再循環
End If ‘if語句結束
Next i ‘下一個i
If PoinTag = False Then ‘如果變量PoinTag的值等於false,那麼
txtResult = txtResult & "." ‘把小數點加到文本框中的字符後面
End If
End Sub

發佈了30 篇原創文章 · 獲贊 5 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章