XXXX年第6章程序設(shè)計(jì)基礎(chǔ)_第1頁
XXXX年第6章程序設(shè)計(jì)基礎(chǔ)_第2頁
XXXX年第6章程序設(shè)計(jì)基礎(chǔ)_第3頁
XXXX年第6章程序設(shè)計(jì)基礎(chǔ)_第4頁
XXXX年第6章程序設(shè)計(jì)基礎(chǔ)_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、程序設(shè)計(jì)基礎(chǔ)第六章 本章要點(diǎn)本章要點(diǎn)6.1 程序6.2 選擇結(jié)構(gòu)6.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的概念 VFP有兩種工作方式:交互方式和程序方式。 交互方式是在命令窗口中直接輸入命令或通過選擇菜單來執(zhí)行VFP命令。但在實(shí)際應(yīng)用中,許多任務(wù)是要執(zhí)行一組命令來完成的。如果采用在命令窗口中逐條輸入命令的方式進(jìn)行,不僅效率不高,而且容易出錯(cuò)。特別是當(dāng)該任務(wù)要反復(fù)執(zhí)行,或者當(dāng)處理的問題較復(fù)雜時(shí),這種交互方式幾乎是不可行的,應(yīng)當(dāng)采用程序方式。6.1 程序 程序是能夠完成指定任務(wù)的命令序列。將這組命令序列以文件形式保存,該文件稱為程序文件或命令文件。 在運(yùn)行程序時(shí),系統(tǒng)將按照一定的次序自動(dòng)執(zhí)行其中的各條命令,從而實(shí)

2、現(xiàn)通過程序控制自動(dòng)執(zhí)行一系列操作,以完成指定任務(wù)。程序文件的基本操作程序文件的基本操作一、程序文件的建立和編輯一、程序文件的建立和編輯命令格式:命令格式:modimodi commcomm 功能:建立或修改指定的程序文件。功能:建立或修改指定的程序文件。說明:說明:(1 1)系統(tǒng)默認(rèn)的程序文件擴(kuò)展名為)系統(tǒng)默認(rèn)的程序文件擴(kuò)展名為.prg(2)若用戶指定了)若用戶指定了,執(zhí)行該命令時(shí),系,執(zhí)行該命令時(shí),系統(tǒng)首先檢索磁盤文件,如果此文件存在,則打開該統(tǒng)首先檢索磁盤文件,如果此文件存在,則打開該文件,若指定文件不存在,則建立一個(gè)新的空程序文件,若指定文件不存在,則建立一個(gè)新的空程序文件,其文件名即為

3、指定的文件,其文件名即為指定的。二、保存命令文件二、保存命令文件( (ctrl+wctrl+w) )三、運(yùn)行命令文件三、運(yùn)行命令文件(do (do 文件名文件名) )例如例如6.1 統(tǒng)計(jì)第一學(xué)期有考試成績的學(xué)生人數(shù)與平均成績統(tǒng)計(jì)第一學(xué)期有考試成績的學(xué)生人數(shù)與平均成績?cè)O(shè)置步驟設(shè)置步驟: :(1 1)創(chuàng)建文件:)創(chuàng)建文件:modimodi commcomm MyProg1 MyProg1(2)編寫代碼)編寫代碼(3)保存文件)保存文件(4)結(jié)束編程)結(jié)束編程(5)調(diào)試、運(yùn)行程序,直到程序完全正確)調(diào)試、運(yùn)行程序,直到程序完全正確8常用命令常用命令1. 程序注釋語句: 格式一:格式一:NOTE 格式

4、二:格式二:* 格式三:格式三:& 92. RETURN命令格式:命令格式:return 功能:終止本程序的執(zhí)行,把程序控制權(quán)返回給本功能:終止本程序的執(zhí)行,把程序控制權(quán)返回給本程序的調(diào)用者。程序的調(diào)用者。如果一個(gè)程序中沒有包含如果一個(gè)程序中沒有包含return命令,當(dāng)執(zhí)行完本程命令,當(dāng)執(zhí)行完本程序最后一條命令后,系統(tǒng)同樣也把程序控制權(quán)返回序最后一條命令后,系統(tǒng)同樣也把程序控制權(quán)返回給本程序的調(diào)用者。給本程序的調(diào)用者。3 3、輸入輸出命令輸入輸出命令( (交互式命令交互式命令) ) 程序的正確運(yùn)行,必然需要操作人員與內(nèi)程序的正確運(yùn)行,必然需要操作人員與內(nèi)存變量之間進(jìn)行信息交流。存變量之

5、間進(jìn)行信息交流。VFP提供了許多進(jìn)提供了許多進(jìn)行這類數(shù)據(jù)交流的命令。行這類數(shù)據(jù)交流的命令。ACCEPT語句語句語句格式:語句格式:ACCEPT ACCEPT to to 執(zhí)行該命令時(shí),暫停程序的運(yùn)行,顯示命令中的執(zhí)行該命令時(shí),暫停程序的運(yùn)行,顯示命令中的字符表達(dá)式作為提示信息,等待用戶從鍵盤輸入字符字符表達(dá)式作為提示信息,等待用戶從鍵盤輸入字符串。系統(tǒng)將接受的字符串存入指定的內(nèi)存變量,程序串。系統(tǒng)將接受的字符串存入指定的內(nèi)存變量,程序繼續(xù)運(yùn)行。繼續(xù)運(yùn)行。功能功能說明說明:系統(tǒng)將用戶的輸入一律作為字符串,輸入時(shí)不必加系統(tǒng)將用戶的輸入一律作為字符串,輸入時(shí)不必加定界符,以回車結(jié)束輸入;定界符,以回

6、車結(jié)束輸入;可選的提示信息可以是字符型常量、變量或表達(dá)式??蛇x的提示信息可以是字符型常量、變量或表達(dá)式。如果是字符串常量,則必須使用字符串定界符。如果是字符串常量,則必須使用字符串定界符。例如例如:查詢指定學(xué)生的信息(文件名例查詢指定學(xué)生的信息(文件名例6-1)INPUT語句語句語句格式:語句格式:INPUT INPUT to to 功能注釋:功能注釋:用戶輸入的數(shù)據(jù)可以是數(shù)值型、邏輯型、日期型、用戶輸入的數(shù)據(jù)可以是數(shù)值型、邏輯型、日期型、日期時(shí)間型或字符型,以回車結(jié)束輸入;日期時(shí)間型或字符型,以回車結(jié)束輸入;輸入字符串時(shí)必須加定界符;輸入邏輯型常量時(shí)輸入字符串時(shí)必須加定界符;輸入邏輯型常量時(shí)

7、要用圓點(diǎn)定界,如(要用圓點(diǎn)定界,如(.T., .F.T., .F.);輸入日期型常量時(shí)要);輸入日期型常量時(shí)要用大括號(hào),如用大括號(hào),如1962/06/121962/06/12;INPUTINPUT命令一般是用來輸入數(shù)值型數(shù)據(jù)。命令一般是用來輸入數(shù)值型數(shù)據(jù)。例如例如: :查詢指定年份出生的學(xué)生的信息查詢指定年份出生的學(xué)生的信息( (文件名例文件名例6-2)6-2)13常用命令常用命令4. 4. 設(shè)置是否輸出非顯示命令的執(zhí)行結(jié)果設(shè)置是否輸出非顯示命令的執(zhí)行結(jié)果 命令格式:命令格式:SETSETTALKTALKONONOFFOFF 功能:功能:VFPVFP在執(zhí)行一些非顯示命令(如在執(zhí)行一些非顯示命令

8、(如SELESELE命令)命令)時(shí),將把執(zhí)行結(jié)果等信息送到時(shí),將把執(zhí)行結(jié)果等信息送到VFPVFP主窗口、狀態(tài)欄或主窗口、狀態(tài)欄或用戶自定義窗口里??墒褂瞄_關(guān)用戶自定義窗口里??墒褂瞄_關(guān)SET TALK ON/OFF SET TALK ON/OFF 顯示或關(guān)閉這些提示信息。顯示或關(guān)閉這些提示信息。 如在例如在例6.16.1的程序的第一行加上命令的程序的第一行加上命令 SET TALK SET TALK ONON,對(duì)比其運(yùn)行結(jié)果。,對(duì)比其運(yùn)行結(jié)果。結(jié)構(gòu)化程序的基本結(jié)構(gòu)結(jié)構(gòu)化程序的基本結(jié)構(gòu)一、順序結(jié)構(gòu)一、順序結(jié)構(gòu) 分析書例分析書例6.3(myprog2)6.3(myprog2)二、選擇結(jié)構(gòu)二、選擇結(jié)

9、構(gòu)三、循環(huán)結(jié)構(gòu)三、循環(huán)結(jié)構(gòu) 6.2 6.2 選擇結(jié)構(gòu)選擇結(jié)構(gòu)1 1、條件語句(、條件語句(IFENDIFIFENDIF)2 2、IFFIFF函數(shù)函數(shù)3 3、IFIF語句的嵌套語句的嵌套4 4、分支語句、分支語句(DO CASEENDCASE)(DO CASEENDCASE)1 1、條件語句、條件語句語句格式:語句格式: IF IF 1 ELSE ELSE 2 ENDIF ENDIF是邏輯表達(dá)式。當(dāng)程序執(zhí)行到是邏輯表達(dá)式。當(dāng)程序執(zhí)行到IF語句時(shí),語句時(shí),首先判斷首先判斷是否成立。如果是否成立。如果為為“真真”時(shí),時(shí),則執(zhí)行則執(zhí)行語句,否則(即語句,否則(即為為“假假”)執(zhí)行)執(zhí)行。IF語句執(zhí)行完

10、畢后,再語句執(zhí)行完畢后,再執(zhí)行執(zhí)行ENDIF后面的語句。后面的語句。選擇結(jié)構(gòu)中可以沒有選擇結(jié)構(gòu)中可以沒有ELSE部分。這樣的話,當(dāng)程序部分。這樣的話,當(dāng)程序執(zhí)行到執(zhí)行到IF語句時(shí),首先判斷語句時(shí),首先判斷是否成立。如果是否成立。如果為為“真真”時(shí),則執(zhí)行時(shí),則執(zhí)行語句,否則直接語句,否則直接轉(zhuǎn)向轉(zhuǎn)向ENDIF后面的語句去執(zhí)行。后面的語句去執(zhí)行。IF和和ENDIF必須成對(duì)出現(xiàn),必須成對(duì)出現(xiàn),IF是該結(jié)構(gòu)的入口,是該結(jié)構(gòu)的入口,ENDIF是該結(jié)構(gòu)的出口。是該結(jié)構(gòu)的出口。IF語句只能在程序中使用,不能在命令窗口中使用語句只能在程序中使用,不能在命令窗口中使用為了使程序的結(jié)構(gòu)層次清晰、減少編寫錯(cuò)誤,增

11、加為了使程序的結(jié)構(gòu)層次清晰、減少編寫錯(cuò)誤,增加程序的可讀性,一般按縮進(jìn)程序的可讀性,一般按縮進(jìn)(鋸齒形鋸齒形)格式書寫。即將該格式書寫。即將該結(jié)構(gòu)的入口和出口語句寫在同一縱坐標(biāo)位置上,而將結(jié)構(gòu)的入口和出口語句寫在同一縱坐標(biāo)位置上,而將嵌套其中的其他結(jié)構(gòu)語句向右縮若干格。嵌套其中的其他結(jié)構(gòu)語句向右縮若干格。IF語句舉例語句舉例1CLEARinput 請(qǐng)輸入一個(gè)數(shù):請(qǐng)輸入一個(gè)數(shù): TO xIF MOD(x,2)=0 THEN y= 是偶數(shù)。是偶數(shù)。 ELSE y= 是奇數(shù)。是奇數(shù)。 ENDIF ? STR(x)+yRETURN判斷從鍵盤輸入的任何一個(gè)整數(shù)的奇偶。若不是判斷從鍵盤輸入的任何一個(gè)整數(shù)的

12、奇偶。若不是整數(shù),則取整判斷。整數(shù),則取整判斷。2 2、IFFIFF函數(shù)函數(shù)格式:格式:IIF(IIF(,2)說明說明:是邏輯表達(dá)式。當(dāng)是邏輯表達(dá)式。當(dāng)為為“真真”時(shí),時(shí),該表達(dá)式的返回值為該表達(dá)式的返回值為,否則,否則,該表達(dá)式的該表達(dá)式的返回值為返回值為, 。 如:如:z=IIF(x=y, x, y), 將返回將返回x與與y中的較大者中的較大者作為函數(shù)的返回值,并賦給作為函數(shù)的返回值,并賦給z。 IIF函數(shù)的功能和函數(shù)的功能和IF-ELSE-ENDIF語句非常相似,可語句非常相似,可以用以用IF語句取代語句取代IIF函數(shù),如函數(shù),如IIF(x=y, x, y)可用如下可用如下IF語句取代。

13、語句取代。 IF x=y z=x ELSE z=y ENDIF有些有些IF語句也可以用語句也可以用IIF函數(shù)代替,但不是所有的。函數(shù)代替,但不是所有的。如,判斷數(shù)的奇偶性程序中的如,判斷數(shù)的奇偶性程序中的IF語句語句 IF MOD(x,2)=0 THEN y= 是偶數(shù)。是偶數(shù)。 ELSE y= 是奇數(shù)。是奇數(shù)。 ENDIF 相當(dāng)于相當(dāng)于IIF(mod(x,2)=0,”是偶數(shù)是偶數(shù)”,“是奇數(shù)是奇數(shù)”)3 3、IFIF語句的嵌套語句的嵌套 VFP對(duì)選擇結(jié)構(gòu)中的命令或語句沒有特別的規(guī)對(duì)選擇結(jié)構(gòu)中的命令或語句沒有特別的規(guī)定或限制,只要是合法的定或限制,只要是合法的VFP命令或語句就行。命令或語句就行

14、。IF語句也是合法的語句也是合法的VFP語句,因此,在語句,因此,在IF語句內(nèi)部也語句內(nèi)部也可以包含可以包含IF語句,這就是語句,這就是IF語句的嵌套。語句的嵌套。 IF的嵌套語句舉例的嵌套語句舉例CLEARinput 請(qǐng)輸入一個(gè)數(shù):請(qǐng)輸入一個(gè)數(shù): TO xIF INT(X)=X IF MOD(x,2)=0 THEN y= 是偶數(shù)。是偶數(shù)。 ELSE y= 是奇數(shù)。是奇數(shù)。 ENDIF ? STR(x)+yELSE ? 輸入的數(shù)不是整數(shù)。輸入的數(shù)不是整數(shù)。 ENDIFRETURN判斷從鍵盤輸入的任何一個(gè)數(shù)的奇偶判斷從鍵盤輸入的任何一個(gè)數(shù)的奇偶性。若不是整數(shù),則顯示性。若不是整數(shù),則顯示“輸入的

15、數(shù)輸入的數(shù)不是整數(shù)不是整數(shù)”。4 4、分支語句、分支語句語句格式:語句格式: DO CASEDO CASE CASE CASE 1 1 CASE CASE 2 2 CASE CASE N N OTHERWISE OTHERWISE N+1 ENDCASE ENDCASE功能:功能:根據(jù)根據(jù)n個(gè)條件表個(gè)條件表達(dá)式的邏輯值,達(dá)式的邏輯值,選擇執(zhí)行選擇執(zhí)行n+1個(gè)個(gè)語句序列中的一語句序列中的一個(gè)。個(gè)。說明:說明:1當(dāng)系統(tǒng)執(zhí)行當(dāng)系統(tǒng)執(zhí)行DO CASEENDCASE語句時(shí),依次判語句時(shí),依次判斷斷CASE后面的條件是否成立,當(dāng)發(fā)現(xiàn)某個(gè)后面的條件是否成立,當(dāng)發(fā)現(xiàn)某個(gè)CASE條件條件成立時(shí),就執(zhí)行該成立時(shí),

16、就執(zhí)行該CASE與下一個(gè)與下一個(gè)CASE之間的語句序之間的語句序列,然后跳出列,然后跳出DO CASE結(jié)構(gòu),轉(zhuǎn)去執(zhí)行結(jié)構(gòu),轉(zhuǎn)去執(zhí)行ENDCASE后后面的語句。如果所有面的語句。如果所有CASE條件都不成立條件都不成立,則執(zhí)行則執(zhí)行OTHERWISE與與ENDCASE之間語句序列,然后執(zhí)行之間語句序列,然后執(zhí)行ENDCASE后面的語句。后面的語句。2DO CASE結(jié)構(gòu)中可以沒有結(jié)構(gòu)中可以沒有OTHERWISE部分。這樣部分。這樣的話,當(dāng)所有的話,當(dāng)所有CASE條件都不成立時(shí),就直接跳出條件都不成立時(shí),就直接跳出DO CASE結(jié)構(gòu),轉(zhuǎn)去執(zhí)行結(jié)構(gòu),轉(zhuǎn)去執(zhí)行ENDCASE后面的語句后面的語句.3不管有

17、幾個(gè)不管有幾個(gè)CASE條件成立,只有最先成立的那條件成立,只有最先成立的那個(gè)個(gè)CASE條件后的語句序列被執(zhí)行。條件后的語句序列被執(zhí)行。4DO CASE和和ENDCASE必須成對(duì)出現(xiàn),必須成對(duì)出現(xiàn),DO CASE是該結(jié)構(gòu)的入口,是該結(jié)構(gòu)的入口,ENDCASE是該結(jié)構(gòu)的出口。是該結(jié)構(gòu)的出口。DO CASE與第一個(gè)與第一個(gè)CASE項(xiàng)之間不能有任何語句。項(xiàng)之間不能有任何語句。5與與IF語句一樣,語句一樣,DO CASE語句只能在程序中使用,語句只能在程序中使用,不能在命令窗口中使用。不能在命令窗口中使用。6DO CASE結(jié)構(gòu)一般按縮進(jìn)格式書寫。結(jié)構(gòu)一般按縮進(jìn)格式書寫。CASE語句舉例語句舉例CLEAR

18、input 請(qǐng)輸入一個(gè)數(shù):請(qǐng)輸入一個(gè)數(shù): TO xDO CASE CASE INT(X)!=X ? 輸入的數(shù)不是整數(shù)輸入的數(shù)不是整數(shù) CASE MOD(x,2)=0 ? 該數(shù)是偶數(shù)。該數(shù)是偶數(shù)。 CASE MOD(x,2)=0 y= 該數(shù)是奇數(shù)。該數(shù)是奇數(shù)。 ENDCASERETURN判斷從鍵盤輸入的任何一個(gè)數(shù)的奇偶判斷從鍵盤輸入的任何一個(gè)數(shù)的奇偶性。若不是整數(shù),則顯示性。若不是整數(shù),則顯示“輸入的數(shù)輸入的數(shù)不是整數(shù)不是整數(shù)”。6.3 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 循環(huán)是程序設(shè)計(jì)中的一種重要的方法。循環(huán)就是循環(huán)是程序設(shè)計(jì)中的一種重要的方法。循環(huán)就是程序在執(zhí)行的過程中,其中的某段代碼被重復(fù)執(zhí)行程序在執(zhí)行的過

19、程中,其中的某段代碼被重復(fù)執(zhí)行若干次。被重復(fù)執(zhí)行的這段代碼稱為循環(huán)體。若干次。被重復(fù)執(zhí)行的這段代碼稱為循環(huán)體。 VFP中支持循環(huán)結(jié)構(gòu)的語句包括:中支持循環(huán)結(jié)構(gòu)的語句包括: (1)DO WHILE-ENDDO (2)FOR-ENDFOR (3)SCAN-ENDSCANDO WHILE語句格式:語句格式: DO WHIL DO WHIL 1 LOOP LOOP 2 EXIT EXIT 3 ENDDO ENDDO 當(dāng)系統(tǒng)執(zhí)行進(jìn)入當(dāng)系統(tǒng)執(zhí)行進(jìn)入DO WHILE結(jié)構(gòu)時(shí),首先判結(jié)構(gòu)時(shí),首先判斷循環(huán)條件是否成立。如果循環(huán)條件成立,則執(zhí)行斷循環(huán)條件是否成立。如果循環(huán)條件成立,則執(zhí)行DO WHILE與與ENDD

20、O之間語句序列(即循環(huán)體)。之間語句序列(即循環(huán)體)。當(dāng)執(zhí)行到當(dāng)執(zhí)行到ENDDO時(shí),返回到時(shí),返回到DO WHILE,再次判,再次判斷循環(huán)條件是否成立,以確定是否再次執(zhí)行循環(huán)體,斷循環(huán)條件是否成立,以確定是否再次執(zhí)行循環(huán)體,如此循環(huán),直到循環(huán)條件不成立,結(jié)束該循環(huán)語句,如此循環(huán),直到循環(huán)條件不成立,結(jié)束該循環(huán)語句,執(zhí)行執(zhí)行ENDDO后面的語句。后面的語句。 循環(huán)體中可以使用兩條特殊的命令:循環(huán)體中可以使用兩條特殊的命令:LOOP命命令和令和EXIT命令。命令。 如果循環(huán)體包含有如果循環(huán)體包含有LOOP命令,那么當(dāng)執(zhí)行到命令,那么當(dāng)執(zhí)行到LOOP命令時(shí),就結(jié)束本次循環(huán)(如同執(zhí)行到命令時(shí),就結(jié)束本

21、次循環(huán)(如同執(zhí)行到ENDDO一樣),即不再執(zhí)行一樣),即不再執(zhí)行LOOP到到ENDDO之之間的語句,返回間的語句,返回DO WHILE處再判斷循環(huán)條件是處再判斷循環(huán)條件是否成立。否成立。 如果循環(huán)體包含有如果循環(huán)體包含有EXIT命令,那么當(dāng)執(zhí)行到命令,那么當(dāng)執(zhí)行到EXIT命令時(shí),就立即結(jié)束該循環(huán)語句,執(zhí)行命令時(shí),就立即結(jié)束該循環(huán)語句,執(zhí)行ENDDO后面的語句。后面的語句。說明:說明:1ENDDO必須與必須與DO WHILE成對(duì)出現(xiàn),缺一不可成對(duì)出現(xiàn),缺一不可2LOOP命令和命令和EXIT命令只能用在循環(huán)結(jié)構(gòu)中,通命令只能用在循環(huán)結(jié)構(gòu)中,通常出現(xiàn)在循環(huán)體內(nèi)嵌套的選擇語句中。常出現(xiàn)在循環(huán)體內(nèi)嵌套的

22、選擇語句中。3避免陷入避免陷入“死循環(huán)死循環(huán)”。循環(huán)體中必須包含能對(duì)。循環(huán)體中必須包含能對(duì)產(chǎn)生影響的命令,否則,若產(chǎn)生影響的命令,否則,若的值永遠(yuǎn)為的值永遠(yuǎn)為真(真(.T.),循環(huán)將不會(huì)結(jié)束。這種現(xiàn)象稱為),循環(huán)將不會(huì)結(jié)束。這種現(xiàn)象稱為“死循死循環(huán)環(huán)”。4為了增加程序的可讀性,一般按縮進(jìn)格式書為了增加程序的可讀性,一般按縮進(jìn)格式書寫。寫。5與與IF語句一樣,語句一樣,DO WHILE語句只能在程序中語句只能在程序中使用,不能在命令窗口中使用。使用,不能在命令窗口中使用。DO WHILE語句舉例語句舉例1例例 計(jì)算計(jì)算1+2+3+1001+2+3+100的結(jié)果的結(jié)果 clearclear s=0

23、 s=0 i=1 i=1 do while i=100 do while i=100 s= s=s+is+i i=i+1 i=i+1 enddoenddo ?”s=”,s ?”s=”,s return return循環(huán)過程的分析循環(huán)過程的分析:第第1次次:(條件條件i=1滿足循環(huán)滿足循環(huán)) S=1 i=2第第2次次:(條件條件i=2滿足循環(huán)條件滿足循環(huán)條件) S=3 i=3第第100次次:(條件條件i=100滿足循環(huán)條件滿足循環(huán)條件) S=5050 i=101第第101次次:(條件條件i=101,不滿足循環(huán)條不滿足循環(huán)條件件,退出退出) 計(jì)算計(jì)算1+3+99clearclears=0s=0i=

24、1i=1do while i=100do while i=100 s= s=s+is+i i=i+2 i=i+2enddoenddo 二、二、 FOR-ENDFORFOR-ENDFOR循環(huán)語句循環(huán)語句 如果事先可以決定循環(huán)的次數(shù)如果事先可以決定循環(huán)的次數(shù),使用使用FOR- ENDFOR語句更加清晰、方便。語句更加清晰、方便。語句格式:語句格式:FOR FOR = TO TO STEP STEP 1 LOOP LOOP 2 EXIT EXIT 3 ENDFOR/NEXT ENDFOR/NEXT 當(dāng)系統(tǒng)執(zhí)行進(jìn)入當(dāng)系統(tǒng)執(zhí)行進(jìn)入FOR循環(huán)結(jié)構(gòu)時(shí),首先將初值賦循環(huán)結(jié)構(gòu)時(shí),首先將初值賦給循環(huán)變量,再將循環(huán)

25、變量的值與終值比較,判斷循給循環(huán)變量,再將循環(huán)變量的值與終值比較,判斷循環(huán)條件是否成立。如果循環(huán)變量的值在初值與終值范環(huán)條件是否成立。如果循環(huán)變量的值在初值與終值范圍內(nèi),表示循環(huán)條件成立,則執(zhí)行圍內(nèi),表示循環(huán)條件成立,則執(zhí)行FOR與與ENDFOR之間的語句序列(即循環(huán)體),然后循環(huán)變量的值增之間的語句序列(即循環(huán)體),然后循環(huán)變量的值增加一個(gè)增量,并再次判斷循環(huán)條件是否成立,以確定加一個(gè)增量,并再次判斷循環(huán)條件是否成立,以確定是否再次執(zhí)行循環(huán)體。若循環(huán)變量的值已超出初值與是否再次執(zhí)行循環(huán)體。若循環(huán)變量的值已超出初值與終值范圍,表示循環(huán)條件不成立,則結(jié)束該循環(huán)結(jié)構(gòu),終值范圍,表示循環(huán)條件不成立,

26、則結(jié)束該循環(huán)結(jié)構(gòu),執(zhí)行執(zhí)行ENDFOR后面的語句。后面的語句。說明:說明:1ENDFOR和和NEXT是等價(jià)的。是等價(jià)的。2FOR、ENDFOR或或NEXT成對(duì)出現(xiàn),缺一不可。成對(duì)出現(xiàn),缺一不可。3、都可以是數(shù)值表達(dá)式都可以是數(shù)值表達(dá)式,但它們僅在控制進(jìn)入循環(huán)結(jié)構(gòu)時(shí)被計(jì)算一次但它們僅在控制進(jìn)入循環(huán)結(jié)構(gòu)時(shí)被計(jì)算一次,而在整而在整個(gè)循環(huán)語句的執(zhí)行過程中不再改變。個(gè)循環(huán)語句的執(zhí)行過程中不再改變。4是描述循環(huán)快慢的量,可以是正值,即遞是描述循環(huán)快慢的量,可以是正值,即遞增,也可以是負(fù)值,即遞減。當(dāng)增量為增,也可以是負(fù)值,即遞減。當(dāng)增量為1時(shí),時(shí),STEP可以省掉。若增量為正值,則當(dāng)循環(huán)變量的值小于等可以

27、省掉。若增量為正值,則當(dāng)循環(huán)變量的值小于等于終值時(shí),循環(huán)條件成立;若增量為負(fù)值,則當(dāng)循環(huán)于終值時(shí),循環(huán)條件成立;若增量為負(fù)值,則當(dāng)循環(huán)變量的值大于等于終值時(shí),循環(huán)條件成立變量的值大于等于終值時(shí),循環(huán)條件成立5可以在循環(huán)體內(nèi)改變循環(huán)變量的值,但循環(huán)次數(shù)可以在循環(huán)體內(nèi)改變循環(huán)變量的值,但循環(huán)次數(shù)也隨之改變。也隨之改變。FOR語句舉例語句舉例例例 計(jì)算計(jì)算1+2+3+1001+2+3+100的結(jié)果的結(jié)果 clearclear s=0 s=0for i=1 to 100for i=1 to 100 s= s=s+is+i endforendfor ?”s=”,s ?”s=”,s return retu

28、rn循環(huán)過程的分析循環(huán)過程的分析:第第1次次:(i=1滿足滿足i100循環(huán)條件循環(huán)條件) S=1 i=2第第2次次:(i=2滿足滿足i100循環(huán)條件循環(huán)條件) S=3 i=3第第100次次:(i=100滿足循環(huán)條件滿足循環(huán)條件) S=5050 i=101第第101次次:i=101,不滿足循環(huán)條件不滿足循環(huán)條件,退退出循環(huán)出循環(huán),執(zhí)行執(zhí)行?”s=”,s語語句句 三、循環(huán)語句三、循環(huán)語句SCAN-ENDSCANSCAN-ENDSCAN 如果需要對(duì)數(shù)據(jù)表指定的若干記錄依次執(zhí)行相同的如果需要對(duì)數(shù)據(jù)表指定的若干記錄依次執(zhí)行相同的操作,使用操作,使用SCAN-ENDSCAN語句更加清晰、方便。語句更加清晰、方便。語句格式:語句格式:SCAN SCAN FORFORWHILE WHILE (語句行序列)(語句行序列) LOOPLOOP (語句行序列)語句行序列) EXITEXIT (語句行序列)語句行序列)ENDSCANENDSCAN 當(dāng)系統(tǒng)執(zhí)行進(jìn)入當(dāng)系統(tǒng)執(zhí)行進(jìn)入SCAN循環(huán)結(jié)構(gòu)時(shí),記錄指針自循環(huán)結(jié)構(gòu)時(shí),記錄指針自動(dòng)、依次地在當(dāng)前數(shù)據(jù)表的指定范圍內(nèi)滿足條件的動(dòng)、依次地在當(dāng)前數(shù)據(jù)表的指定范圍內(nèi)滿足條件的記錄上移動(dòng),對(duì)每一條記錄執(zhí)行語句序列(即循環(huán)記錄上移動(dòng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論