亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺談DO…Loop不同循環(huán)結(jié)構(gòu)語句間的區(qū)別

        2010-09-25 02:12:18耿梅英
        關(guān)鍵詞:程序結(jié)構(gòu)

        耿梅英

        淺談DO…Loop不同循環(huán)結(jié)構(gòu)語句間的區(qū)別

        耿梅英

        (徐州市廣播電視大學(xué)銅山分校,江蘇徐州221008)

        Visual Basic程序設(shè)計教程(簡稱VB)是目前應(yīng)用最廣泛的、易學(xué)易用的、面向?qū)ο蟮拈_發(fā)工具之一,是大中專院校計算機基礎(chǔ)課程普遍采用的教材。Do…Loop循環(huán)結(jié)構(gòu)語句是VB課程中最通用的、最有用的一種循環(huán)結(jié)構(gòu),是用來描述有規(guī)律地重復(fù)執(zhí)行某一程序段,其作用是簡化程序的設(shè)計,提高編程效率。筆者在教學(xué)過程中發(fā)現(xiàn)很多初學(xué)者搞不清DO…Loop不同循環(huán)結(jié)構(gòu)語句間的區(qū)別,這在一定程度上影響了學(xué)生的編程興趣。

        Visual Basic程序設(shè)計;Do…Loop循環(huán)結(jié)構(gòu)語句;程序流程圖

        一、DO…Loop循環(huán)結(jié)構(gòu)語句的幾種格式

        循環(huán)結(jié)構(gòu)是程序的基本算法結(jié)構(gòu)之一。所謂循環(huán),就是重復(fù)地執(zhí)行某些操作。VB提供了相應(yīng)的語句用于實現(xiàn)各種類型的循環(huán),其中Do…Loop循環(huán)結(jié)構(gòu)語句就是各種類型的循環(huán)之一。Do…Loop循環(huán)結(jié)構(gòu)語句只要判斷某個條件滿足要求,就會重復(fù)執(zhí)行循環(huán)體,它既可以在循環(huán)的頂部判斷條件,也可以在循環(huán)的底部檢查條件,這樣Do…Loop循環(huán)結(jié)構(gòu)語句就演化出以下四種格式:

        格式一格式二格式三格式四DoWhile <條件> DoUntil <條件>DoDo [<語句組1>][<語句組1>][<語句組1>][<語句組1>] [ExitDo][ExitDo][ExitDo][ExitDo] [<語句組2>][<語句組2>][<語句組2>][<語句組2>] LoopLoopLoopWhile <條件> LoopUntil <條件>

        以上四種格式的主要區(qū)別:一是<條件>的書寫位置不同。<條件>可以寫在起始語句Do之后,也可以寫在終止語句Loop之后。二是<條件>之前的關(guān)鍵字不一樣??梢允荳hile,也可以是Until。

        根據(jù)以上格式的區(qū)別,可以把四種結(jié)構(gòu)劃分為兩種循環(huán)類型:格式一和格式二是在循環(huán)的起始語句Do之后開始判斷條件的,屬于當(dāng)型循環(huán);格式三和格式四是在循環(huán)的終止語句Loop后才判斷條件,屬于直到型循環(huán)。

        二、DO…Loop不同循環(huán)結(jié)構(gòu)語句間功能上的區(qū)別

        1.當(dāng)型循環(huán)

        當(dāng)型循環(huán)是先判斷條件,后決定是否執(zhí)行循環(huán)體,因此循環(huán)可能一次都不執(zhí)行。它有兩種程序流程圖:

        圖1

        圖2

        圖1 Do While<條件>…Loop語句的執(zhí)行過程圖2 Do Until<條件>…Loop語句的執(zhí)行過程

        從程序流程圖中我們不難看出,Do While<條件>…Loop循環(huán)結(jié)構(gòu)語句和Do Until<條件>…Loop循環(huán)結(jié)構(gòu)語句都在循環(huán)頂部判斷進(jìn)入循環(huán)的條件,Do while<條件>…Loop循環(huán)結(jié)構(gòu)語句判斷條件是否為真,DoUntil<條件>…Loop循環(huán)結(jié)構(gòu)語句判斷條件是否為假,如果循環(huán)的條件已經(jīng)滿足,就執(zhí)行循環(huán)體,如果條件不滿足,則循環(huán)體內(nèi)的語句不再執(zhí)行。

        下面舉例來說明兩種當(dāng)型循環(huán)的功能不同,編寫程序計算1+2+3+……+100的和。首先用DoWhile<條件>…Loop循環(huán)結(jié)構(gòu)語句來編寫程序,程序如下:

        程序1 Private SubCommand1_Click()

        DimIAs Integer,SumAs Integer

        I=0:Sum=0

        Dowhile I<100

        I=I+1:Sum=Sum+I

        Loop

        Text1.Text=Sum

        EndSub

        其次用DoUntil<條件>…Loop循環(huán)結(jié)構(gòu)語句來編寫程序,程序如下:

        程序2 Private SubCommand1_Click()

        DimIAs Integer,SumAs Integer

        I=0:Sum=0

        DoUntil I>99

        I=I+1:Sum=Sum+I

        Loop

        Text1.Text=Sum

        EndSub

        在VB集成開發(fā)用戶環(huán)境下運行上面兩道程序都能得到正確的結(jié)果,1到100的和是5050。那么當(dāng)型循環(huán)的兩種結(jié)構(gòu)語句功能上究竟有什么不同呢?首先來分析一下Do While I<100…Loop循環(huán)結(jié)構(gòu)語句,循環(huán)變量I的初值被賦值為0,與條件給出100相比較,結(jié)果為TRUE,執(zhí)行循環(huán)體,循環(huán)變量I的值自增為1,Sum的值也由0增加為1,這樣完成了一次循環(huán),依此類推循環(huán)下去,當(dāng)循環(huán)變量I的值自增到99時,與條件給出100相比較,結(jié)果為TRUE,仍執(zhí)行循環(huán)體,循環(huán)變量I的值自增為100,與條件給出100相比較,結(jié)果為FALSE,循環(huán)體內(nèi)的語句不再執(zhí)行,而去執(zhí)行LOOP下一語句,在文本框中輸出1到100的和。

        其次分析一下Do Until I>99…Loop循環(huán)結(jié)構(gòu)語句,循環(huán)變量I的初值被賦值為0,與條件給出99相比較,結(jié)果為FALSE,執(zhí)行循環(huán)體,循環(huán)變量I的值自增為1,Sum的值也由0增加為1,這樣完成了一次循環(huán),依此類推循環(huán)下去,當(dāng)循環(huán)變量I的值自增到98時,與條件給出99相比較,結(jié)果為FALSE,仍執(zhí)行循環(huán)體,I的值自增為99,與條件給出99相比較,結(jié)果仍為FALSE,仍執(zhí)行循環(huán)體,I的值自增為100,與條件給出99相比較,結(jié)果為TRUE,循環(huán)體內(nèi)的語句不再執(zhí)行,而去執(zhí)行LOOP下一語句,在文本框中輸出1到100的和。

        2.直到型循環(huán)

        直到型循環(huán)至少要先執(zhí)行一次循環(huán)體,然后再判斷循環(huán)條件,因此,對于可能在循環(huán)開始時循環(huán)條件就不滿足要求的情況下,應(yīng)該選擇使用當(dāng)型循環(huán)。大多數(shù)情況下,這兩類循環(huán)是可以互相代替的。直到型循環(huán)也有兩種程序流程圖:

        圖3

        圖4

        圖3 Do…Loop While<條件>語句的執(zhí)行過程圖4 Do…Loop Until<條件>語句的執(zhí)行過程

        從上面的程序流程圖我們很容易看出,Do…Loop while<條件>循環(huán)結(jié)構(gòu)語句和Do…Loop Until<條件>循環(huán)結(jié)構(gòu)語句是在循環(huán)的底部判斷退出循環(huán)的條件;與當(dāng)型循環(huán)的功能相同的是,Do…Loop while<條件>循環(huán)結(jié)構(gòu)語句判斷條件是否為真,Do…Loop Until<條件>循環(huán)結(jié)構(gòu)語句判斷條件是否為假,如果循環(huán)的條件已經(jīng)滿足,就執(zhí)行循環(huán)體;如果條件不滿足,則循環(huán)體內(nèi)的語句不再執(zhí)行。與當(dāng)型循環(huán)不同的是,直到型循環(huán)是無條件地多執(zhí)行循環(huán)體一次,然后再判斷條件是否滿足。

        下面舉例來說明兩種直到型循環(huán)功能上的不同,同樣是計算1到100的和。首先用Do…LoopWhile<條件>循環(huán)結(jié)構(gòu)語句來編寫程序,程序如下:

        程序3 Private SubCommand1_Click()

        DimIAs Integer,SumAs Integer

        I=0:Sum=0

        Do

        I=I+1:Sum=Sum+I

        Loopwhile I<100

        Text1.Text=Sum

        EndSub

        其次用Do…LoopUntil<條件>循環(huán)結(jié)構(gòu)語句來編寫程序,程序如下:

        程序4 Private SubCommand1_Click()

        DimIAs Integer,SumAs Integer

        I=0:Sum=0

        Do

        I=I+1:Sum=Sum+I

        LoopUntil I>99

        Text1.Text=Sum

        EndSub

        我們仔細(xì)比較這四道程序,很容易發(fā)現(xiàn)只要把程序1和程序2的判斷條件分別由起始語句DO之后轉(zhuǎn)移到終止語句LOOP之后,就分別變成了程序3和程序4。程序3和程序4的執(zhí)行過程分別與程序1和程序2類似,只是無條件地都多執(zhí)行循環(huán)體一次。

        這四道程序都能完成1到100的和,功能一樣,但采用的語句格式卻不同,使用While I<100的條件時,當(dāng)指定的條件為True時,執(zhí)行循環(huán)體中的語句組,而當(dāng)條件為False時則退出循環(huán),執(zhí)行循環(huán)終止語句Loop之后的語句。使用Until I>99的條件時,當(dāng)指定的條件為False時,執(zhí)行循環(huán)體中的語句組,而當(dāng)條件為True時則退出循環(huán),執(zhí)行循環(huán)終止語句Loop之后的語句。因此使用While條件子句和使用Until條件子句的主要區(qū)別是:While<條件>子句表示當(dāng)條件成立時執(zhí)行循環(huán)體,Until<條件>子句則是在條件不成立時執(zhí)行循環(huán)體。

        三、Exit Do語句的作用

        當(dāng)省略了While|Until條件子句,條件等價于While True,即循環(huán)結(jié)構(gòu)僅由Do循環(huán)體Loop構(gòu)成,表示無條件地執(zhí)行循環(huán)體,這時循環(huán)體內(nèi)應(yīng)該有ExitDo語句,否則為死循環(huán);ExitDo語句用于當(dāng)條件成立時強制退出循環(huán)體,執(zhí)行Loop的下一語句。必要時,循環(huán)體中可以放置多條Exit Do語句,該語句一般放在某條件結(jié)構(gòu)中,使用形式為:If<條件>ThenExitDo。當(dāng)然,循環(huán)體中也可以沒有ExitDo語句。

        下面程序就使用了ExitDo語句來強制退出循環(huán)體。

        Private SubForm_Click()

        DimXAs Integer,YAs Integer

        X=5:Y=5

        DoWhile X+Y<25

        Y=Y+5:X=X+2:PrintY;

        IfY>14 ThenExitDo

        Loop

        PrintY

        EndSub

        H04

        A

        1673-0046(2010)9-0159-02

        猜你喜歡
        程序結(jié)構(gòu)
        《形而上學(xué)》△卷的結(jié)構(gòu)和位置
        論結(jié)構(gòu)
        中華詩詞(2019年7期)2019-11-25 01:43:04
        新型平衡塊結(jié)構(gòu)的應(yīng)用
        模具制造(2019年3期)2019-06-06 02:10:54
        試論我國未決羈押程序的立法完善
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        論《日出》的結(jié)構(gòu)
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        創(chuàng)新治理結(jié)構(gòu)促進(jìn)中小企業(yè)持續(xù)成長
        欧美成人精品三级在线观看| 日本最新免费二区三区| 无码日韩精品一区二区三区免费| 日韩久久一级毛片| 在线免费观看亚洲天堂av| 中国少妇久久一区二区三区| 亚洲欧美乱日韩乱国产| 激情97综合亚洲色婷婷五| 亚洲欧美日本人成在线观看| 男女激情视频网站免费在线| av免费不卡国产观看| 亚洲av色先锋资源电影网站| 无码AⅤ最新av无码专区| 久久亚洲中文字幕伊人久久大| 免费人妻无码不卡中文字幕系| 欧美精品一区二区性色a+v| 久久精品国产av大片| 国内嫩模自拍偷拍视频| 亚洲欧美乱综合图片区小说区| 精品日韩国产欧美在线观看| 亚洲一区二区三区99区| 少妇被粗大进猛进出处故事| 少妇aaa级久久久无码精品片| 99国产小视频| 日本免费三片在线播放| 国精产品一区一区三区| 丁香五香天堂网| 久久91精品国产91久| 午夜免费观看日韩一级片| 精品国内在视频线2019| 78成人精品电影在线播放| 色婷婷亚洲一区二区在线| 日日噜噜夜夜狠狠久久丁香五月| 日产精品久久久久久久性色| 欧美高h视频| 美女免费视频观看网址| 中文字幕久久久人妻无码| 久久狠狠高潮亚洲精品暴力打 | 日韩精品人妻中文字幕有码| 丁香婷婷在线成人播放视频| 免费观看又色又爽又黄的|