【正文】
第 4章:循環(huán)結構 主要內容 : 1:循環(huán)結構 2:Do… Loop語句 3:For… Next語句 4:循環(huán)嵌套 5:列表框、組合框 小測驗 ? 任意輸入一個整數(shù),判斷其奇偶性 程序代碼: Private Sub Command1_Click() Dim x As Integer x = Val() If x Mod 2 = 0 Then = 偶數(shù) Else = 奇數(shù) End If End Sub 例 ?在窗體上打印出 1~20以內的所有偶數(shù) ?分析與思考 從 1開始 判斷 1是否為偶數(shù),若是則打印 1 判斷 2是否為偶數(shù),若是則打印 2 判斷 3… … 判斷 20是否為偶數(shù),若是則打印 20 結束 例 ?直接寫代碼 If 1 Mod 2 = 0 Then Print 1 If 2 Mod 2 = 0 Then Print 2 … If 20 Mod 2 = 0 Then Print 20 ?分析與思考 “ 判斷一個數(shù)是否為偶數(shù)若是則打印 ” 這樣的處理被重復了 20次! 例 ?高效率的處理 ? 1)賦予變量 x初值為 1 ? 2)如果 x=20,那么若 x是偶數(shù)則打印 x; 反之若 x20則跳至第 5步 ? 3)賦予 x值為下一個要判斷的數(shù) ? 4)跳至第 2步 ? 5)結束 例 ? 程序代碼 Private Sub Command1_Click() Dim x As Integer x = 1 Do While x = 20 If x Mod 2 = 0 Then Print x x = x + 1 Loop End Sub ? 代碼的這種結構稱為 “ 循環(huán)結構 ” ? Do While… Loop是典型的循環(huán)語句 開始 x=1 x=20 x Mod 2=0 T Print x T x=x+1 結束 F F 語句序列循環(huán)結構 ? 循環(huán) :指在滿足指定條件下重復多次執(zhí)行相同語句序列的程序結構 ? 循環(huán)體 :被重復執(zhí)行的語句序列 ? 執(zhí)行時,先測試條件,若滿足,則執(zhí)行一遍語句序列,然后跳回到條件處,再次測試條件; 若不滿足,則跳出循環(huán) ? VB提供的循環(huán)語句有 For...Next Do...Loop While...Wend For Each...Next 其中最常用的是 For...Next和Do...Loop語句 條件 T F 語句序列 前測型 Do...Loop語句 ? 格式: Do [{While|Until} 條件 ] 循環(huán)體 Loop ? Do While...Loop語句的功能: 當條件為真時,執(zhí)行循環(huán)體 ;當條件為假時,退出循環(huán)。此循環(huán)稱為 “ 當型循環(huán) ” 。先測試條件再決定是否執(zhí)行循環(huán)體! ? Do Until...Loop語句的功能:當條件為假時,執(zhí)行循環(huán)體, 直到條件為真時,退出循環(huán) 。此循環(huán)稱為 “ 直到型循環(huán) ” 。先測試條件再決定是否執(zhí)行循環(huán)體! Do While x=100...Loop Do Until x100...Loop 等價于 小測驗 ? 程序運行后,單擊命令按鈕,在兩個文本框中顯示的值分別為( )和( ) Private Sub Command1_Click() Dim x As Integer, n As Integer x = 0 Do While x 50 x = (x + 2) * (x + 3) n = n + 1 Loop = Str(n) = Str(x) End Sub 2 72 例 ? 題目:求 S = 1 + 2 + … + 100之和 ? 分析與思考 累加問題:求一組有規(guī)律的數(shù)的和 可用循環(huán)結構解題,但關鍵是找出其中 “ 重復執(zhí)行 ” 的部分,觀察下面代碼: ? s=s+1 s=s+2 … s=s+100 ? ―重復執(zhí)行 ” 部分:將 s和一個數(shù)相加重新賦予 s 其中變化的是那個數(shù),設該數(shù)為 n,顯然 n的初值為 1,然后不斷加 1,直到 100 例 ? 程序代碼如下: Private Sub Command1_Click() Dim n As Integer,s As Integer n=1 s=0 Do While n=100 s=s+n n=n+1 Loop Print s=。s End Sub 1)變量 s稱為累加器變量,用來保存求和結果 2)賦值語句 s= 0稱累加器清零 3) s = s + n實現(xiàn)累加 例 ? 程序代碼如下: Private Sub Command1_Click() Dim n As Integer,s As Integer n = 1 s = 0 Do Until s = s+n n = n+1 Loop Print s=。s End Sub n 100 例 ?題目:利用公式 π/4= 1 1/3 + 1/5 1/7 + …… 求 π的近似值。要求:當加數(shù)項的絕對值小于 105時,停止計算 ?分析與思考 ?這是累加問題的變型 ?公式中的每項的分母是規(guī)律的奇數(shù)列。且奇數(shù)項為加法運算,偶數(shù)項為減法運算 ?循環(huán)條件為:累加項的絕對值小于 105 可寫為 Until 1/n 例 ? 程序代碼 Private Sub Command1_Click() Dim pi As Single, n As Long Dim c As Integer