【正文】
=fac*i的過(guò)程 …… fac=fac*n (2)循環(huán)的 次數(shù)未確定 ,所以用 While循環(huán)。 循環(huán)體為 fac=fac*i, 循環(huán)條件為累乘積 fac=5000。 i = 1 fac = 1 While fac = 5000 fac = fac * i i = i + 1 Wend 、 While語(yǔ)句 ( 一般用于循環(huán)次數(shù)未知) While 條件 循環(huán)體 Wend ( 1)功能:當(dāng)條件成立 (為真 )時(shí),執(zhí)行循環(huán)體; 當(dāng)條件不成立 (為假 )時(shí),終止循環(huán)。 ( 2)說(shuō)明: ,當(dāng)條件成立時(shí)進(jìn)入循環(huán) . B. 循環(huán)體由若干條語(yǔ)句構(gòu)成,在循環(huán)體中 至少包含一條不斷修正邏輯表達(dá)式 的語(yǔ)句,使得循環(huán)過(guò)程朝退出的方向發(fā)展。 C. 一直循環(huán)到邏輯表達(dá)式不成立為止。 ( 1)求出條件表達(dá)式的值,如果值為 True(非 0值),則執(zhí)行( 2),否則執(zhí)行 Wend后的語(yǔ)句 ( 2)執(zhí)行 “ 循環(huán)體 ” ,當(dāng)遇到 Wend語(yǔ)句轉(zhuǎn)到步驟( 1) While...Wend語(yǔ)句的執(zhí)行步驟 條 件循 環(huán) 體T r u eF a l s e[實(shí)例 ] 實(shí)現(xiàn) 1*2*3*……*n 的操作,當(dāng)階乘值 5000時(shí)結(jié)束操作。窗體界面如圖所示?!坝?jì)算”命令按鈕代碼用來(lái)計(jì)算累乘積;“手動(dòng)計(jì)算”按鈕代碼是執(zhí)行一次累乘積操作,主要目的是用于演示 1*2*3*……*n 的過(guò)程。 “ 手動(dòng)計(jì)算 ” If j = 0 Then fact = 1 If fact = 5000 Then j = j + 1 fact = fact * j = j = fact Else = False End If 任務(wù)三 用 wile …wend 結(jié)構(gòu)實(shí)現(xiàn)5+10+15+……+100 的操作。 i = 5 S=0 While i = 100 s=s+i i = i + 5 Wend 任務(wù)四 隨機(jī)產(chǎn)生一個(gè)兩位數(shù)正整數(shù),判斷是否是素?cái)?shù) 。 、 Do語(yǔ)句 ( 一般用于循環(huán)次數(shù)未知) 1.先判斷后語(yǔ)句形式 1(執(zhí)行,執(zhí)行次數(shù) =0) Do [While 或 Until 條件 ] 語(yǔ)句塊 [Exit Do] 語(yǔ)句塊 Loop 語(yǔ)句形式 2(先執(zhí)行后判定,執(zhí)行次數(shù) =1) Do 語(yǔ)句塊 [Exit Do] 語(yǔ)句塊 Loop [While 或 Until 條件 ] 語(yǔ)句說(shuō)明: ? While條件:當(dāng)條件成立時(shí)執(zhí)行循環(huán),條件不成立時(shí)結(jié)束循環(huán)。 ? Until 條件:條件不成立時(shí)執(zhí)行循環(huán),直到條件成立時(shí)結(jié)束循環(huán)。 ? Exit Do:從循環(huán)中間退出循環(huán),執(zhí)行do循環(huán)后的語(yǔ)句。 2. Do…Loop 循環(huán)語(yǔ)句 (用于控制循環(huán)次數(shù)未知 ) 形式 1: (先測(cè)試后執(zhí)行;執(zhí)行次數(shù) =0) Do { While|Until }條件 語(yǔ)句塊 [Exit Do 語(yǔ)句塊 ] Loop 形式 2:( 先執(zhí)行后測(cè)試;執(zhí)行次數(shù) =1) Do 語(yǔ)句塊 [Exit Do 語(yǔ)句塊 ] Loop { While|Until} 條件 表達(dá)式列表 1 F T F T E xi t D o 語(yǔ)句塊 語(yǔ)句塊 E xi t D o 語(yǔ)句塊 語(yǔ)句塊 表達(dá)式列表 1 圖 1 3 16 D o ? L o o p W hi l e 圖 1 3 15 D o W hi l e ? L o o p Do While語(yǔ)句的執(zhí)行步驟 條件語(yǔ)句體遇到 E x it Do語(yǔ)句體語(yǔ)句體遇到 E x it Do語(yǔ)句體條件FFTTFTFT注:循環(huán)體由若干條語(yǔ)句構(gòu)成,在循環(huán)體中 至少包含一條不斷修正邏輯表達(dá)式 的語(yǔ)句,使得循環(huán)過(guò)程朝退出的方向發(fā)展。 [實(shí)例 ] 產(chǎn)生 m個(gè) 10~99之間的隨機(jī)整數(shù),求出其中的素?cái)?shù),并求出素?cái)?shù)中的最大值、最小值和平均值。窗體設(shè)計(jì)界面和運(yùn)行界面如圖所示。 算法分析 ( 1)產(chǎn)生隨機(jī)數(shù): r= Int( Rnd*90) +10 ( 2)判斷 r 是否素?cái)?shù)。素?cái)?shù)是只能被 1和其本身整除的數(shù)。也就是說(shuō),要判斷 r是否為素?cái)?shù),只要依次用整數(shù) 2, 3, 4, …… , r1去除 r,只要有一個(gè)能整除 r,則 r不是素?cái)?shù),否則 r是素?cái)?shù)。 ( 3)素?cái)?shù)最大最小值。用變量 max和 min分別存放最大和最小值。如果隨機(jī)素?cái)?shù) r大于最大值 max則 r為最大值;如果 r小于最小值 min則 r為最小值。 ( 4)隨機(jī)素?cái)?shù)累加: sum = sum + r ( 5)重復(fù)步驟① ~④ m次產(chǎn)生 m個(gè)隨機(jī)數(shù)。最后求出 m個(gè)數(shù)中的最大最小值和總和 For i = 2 To r – 1 If r Mod i = 0 Then Exit For Next i If r max Then max = r Else If r min Then min = r End If if i = r then r是素?cái)?shù) End if 代碼實(shí)現(xiàn) Do r = Int(Rnd * 90) + 10 = + + Str$(