何成
摘 要:本文主要介紹了循環語句構成的3個基本要素:初始值、循環條件、使循環趨于結束的語句,詳細解釋了“當型循環”和“直到型循環”2種構成形式及二者的相似與區別。通過對具體的數學問題求解對比分析了Visual Basic程序設計語言中6中基本的語法結構,并描述了2種Exit語句的用途并對應實際的具體案例。本人為Visual Basic程序設計初學者提供了一個有效的學習利器,使初學者從形式靈活多樣的語法結構中脫離開來并真正掌握程序設計的主旨。
關鍵詞:循環條件 步長 事件驅動
中圖分類號:G712 文獻標識碼:A 文章編號:1672-3791(2018)02(b)-0189-02
程序設計語言語句結構一般分為順序結構、選擇結構和循環結構,順序結構和選擇結構只能處理一些簡單的不需要重復的問題,但在解決實際問題過程中,有些問題是在某一特定條件下在被反復的執行,需要對某條語句或某段語句反復執行,這種語句就是循環結構。
Visual Basic是目前常用的面向對象程序設計語言,它是在Basic語言基礎上發展而來的,具有可視化的圖形界面,以事件驅動的方式為運行的機制,功能比較強大。Visual Basic循環語句形式非常靈活,它不但提供了6種基本的循環語句格式,還提供了Exit語句參數,靈活多樣的變化形式往往造成初學者的困惑,本文將對各語句形式做統一的辨析與討論,希望可以成為VB使用者的有效的利器。
1 循環語句基本思想
1.1 構成循環的基本要素
循環語句由3個基本要素構成:循環的初始值、循環條件、使循環趨于結束的語句,有很多地方簡單的稱這3者為循環初值、循環終止及循環變化值。一個循環體必須由這3部分構成,否則很容易出現死循環,一個程序設計初學者最容易犯的錯誤就是編寫死循環。
循環的初始值是設置循環變量的初值;循環條件表達式作為設置循環終止的條件,當條件為真,則繼續執行循環體,否則結束循環;使循環趨向于結束的語句,一般是以改變循環變量值的形式出現,很多時候也稱之為“步長”,這也是初次接觸循環語句的程序設計者最容易忽略的地方。
1.2 循環語句的分類
循環語句一般由“當型循環”和“直到型循環”2種形式構成,二者的區別在于“當型循環”先判斷循環終止條件,滿足此條件則執行循環體語句,而“直到型循環”是先執行一次循環體語句再判斷循環條件。這2種語句一般情況下并無區別,只有當循環的初始值不滿足循環條件時,“當型循環”一次循環語句沒有執行,而“直到型循環”執行了一次循環語句。
1.3 循環結構的應用
循環語句的用處非常靈活,可解決已知循環次數的問題,如:求自然數1~100的累加和是多少?可以解決循環次數不固定的問題,如:表達式s=1+2+……+n中,當s〉3000是n的值最小是多少?這2種問題均可以通過設置初值、終止及步長來解決。
2 Visual Basic中的循環語句形式
2.1 基本語句形式
Visual Basic提供了6種基本的循環語句,分別是:While語句、Do while……loop語句、Do……loop while語句、Do Until……loop語句、Do……loop Until語句、For語句。Visual Basic還提供了一種特殊的Exit語句可以跳出循環,它具有2種基本形式,分別是:Exit do語句,Exit for語句。
2.2 基本循環語句的具體例題分析
此處以循環語句的入門程序“求自然數1~100的累加和是多少?”為例,分別利用不同的語句實現對問題的求解,此處為了重點對比分析循環語句構成的差異,而暫且忽略聲明語句等一些基本語句,其基本思想同樣適用于其他程序設計語言。這里設置存儲累加和的變量為s,并通過s=0對變量s賦初值;設置循環變量為i,并通過i=1對變量i賦初值。具體循環結構如表1所示。
這里前5種一般用于求解循環終止條件已知的問題,最后一種一般用于求解已知循環次數的問題(當循環變量步長為1此處可以省略step1)。而前3種是先判斷循環條件再執行循環體,第4及第5種是后判斷循環條件再執行循環體,這里如果循環變量的初始值i=101,則前3種程序運行的結果s為0,而第4及第5種程序運行的結果s為101。
本程序例題為各種程序設計語言循環結構的入門程序,以此程序為基礎通過簡單修改循環的初值、終值、變化值可以求解很多問題,例如:自然數1~100的偶數和是多少?自然數1~100的奇數和是多少?100~200間所有自然數的和是多少?6的階乘是多少?根據特定的數學公式,可以求解圓周率π及自然對數e等等復雜的問題,看似復雜的問題難處只在于數學求解公式,程序設計思想跟本題無任何不同之處。
2.3 基本循環語句的各語句適用范圍
很多題目可以采用任何一種語句實現,如上文所示例題,但For語句形式上簡單明了,它集循環初值、終值、步長為一條語句,但它適用范圍窄,如果循環次數不確定則不能用此語句求解。而另外5種語句語法靈活,基本可以完成各種各樣的循環操作。
2.4 循環語句中的Exit語句
Exit語句分為Exit do語句和Exit for語句2種。其中,Exit do語句用于Do……loop循環體中,當程序中遇到Exit do語句則跳出循環,執行loop后語句;Exit for語句用于For……next循環體中,當程序中遇到Exit for語句則跳出循環,執行next后語句。
這里以求解上文中提到的“表達式s=1+2+……+n中,當s〉3000是n的值最小是多少?”為例進行程序的簡單編寫。這里設置存儲累加和的變量為s,并通過s=0對變量s賦初值;設置循環變量為i,并通過i=1對變量i賦初值。則題目的具體求解過程如表2所示。
循環語句還可以解決“水仙花數”、“素數”、“完數”及“最大公約數”等這種有趣的數學問題,還可以通過雙重循環來解決“排序”、“楊輝三角”、“百錢百雞”等復雜的數學問題,對于常見的“雞兔同籠”也可輕易求解。
3 結論
(1)程序設計語言語句結構一般分為順序結構、選擇結構和循環結構,順序結構和選擇結構只能處理一些簡單的不需要重復的問題,而循環語句可以解決對某條語句或某段語句反復執行的問題。
(2)循環語句由循環的初始值、循環條件、使循環趨于結束的語句3個基本要素構成,循環語句一般由“當型循環”和“直到型循環”2種形式構成,當循環的初始值不滿足循環條件時2種語句運算結果不同。
(3)以求解自然數1~100累加和為例對6種Visual Basic基本循環語句結構作了對比分析,辨析了各種結構的適用范圍和優缺點。并具體解釋了“當型循環”和“直到型循環”2種形式對程序結果的影響。
參考文獻
[1] FrancescoBalena著,翔實組,翔實組.Visual Basic 6編程技術大全[J].2000.
[2] 求是科技,Visual Basic 6.0程序設計與開發技術大全[M].北京:人民郵電出版社,2006.
[3] 李曉輝,肖蓉暉.用VisualBasic編寫控制程序方法[J].計算機工程與應用,1998(6):50-53.
[4] 龔沛曾,陸慰民,楊志強.Visual Basic程序設計簡明教程[M].2版.北京:高等教育出版社,2003.
[5] 劉圣才,李春葆.Visual Basic 6程序設計導學[M].北京:清華大學出版社,2002.
[6] 張艷.新編Visual Basic程序設計教程:Visual Basic程序設計教程[M].北京:清華大學出版社,2014.
[7] 劉剛.Visual Basic程序設計與應用案例[M].北京:高等教育出版社,2003.
[8] 張東亮,張鑫,朱莉娟.新編VISUAL BASIC程序設計教程[M].北京:航空工業出版社,2005.
[9] 張榮華,殷士勇.Visual Basic程序設計與應用[M].北京:清華大學出版社,2008.
[10]教傳艷,王果.Visual Basic 6.0程序設計完全自學手冊[M].北京:人民郵電出版社,2009.