循環(huán)結(jié)構(gòu):前面我們學習的順序結(jié)構(gòu)和選擇結(jié)構(gòu)有一個共同點,即程序語句不能重復執(zhí)行.而在實際應用中,常常需要多次重復執(zhí)行某些語句.這樣的需求適合于用循環(huán)語句來處理.在vfp中,提供了3種循環(huán)語句:do while循環(huán)、for循環(huán)及scan循環(huán).
1.while循環(huán):
格式:
do while 條件
語句序列
[loop]
[exit]
enddo
說明:
(1).\"do while 條件\"是循環(huán)說明語句,它標志循環(huán)的開始,并判斷循環(huán)條件是否為真值;當條件為真值時,則執(zhí)行語句序列;否則跳到enddo后面的語句繼續(xù)執(zhí)行.
(2).do while和enddo之間的語句序列也被稱作循環(huán)體,是需要多次重復執(zhí)行的語句,由它完成規(guī)定的數(shù)據(jù)處理工作.
(3).循環(huán)語句中的可選項exit,用于退出循環(huán)語句,可放在循環(huán)體語句的任意位置上.若在循環(huán)體中加上該可選項,當執(zhí)行exit時,跳出循環(huán)體去執(zhí)行enddo后面的語句.通常,exit是在條件語句控制下,當條件得到滿足時便跳出循環(huán);否則永遠不能執(zhí)行exit后面的循環(huán)體語句.
(4).可選項loop,是循環(huán)短路語句,也可以放在循環(huán)體語句的任意位置上.當執(zhí)行l(wèi)oop時,其后的循環(huán)體語句部分不予執(zhí)行,直接返回到循環(huán)起始語句.loop也通常放在條件語句的控制下.
(5).enddo和do while必須成對出現(xiàn).
例:將\"職工檔案\"表中所有職稱是\"講師\"的工資加200元,副教授加150元,無職稱的加100元.
首先,我們修改一下\"職工檔案\"表的結(jié)構(gòu),為其增加一個\"工資\"字段:
在命令窗口依次執(zhí)行如下命令:
use 職工檔案
modify structure
彈出\"表設計器\"窗口,添加一個新字段:工資 N6.1,單擊\"確定\",保存更改.
再執(zhí)行browse命令,在彈出的browse窗口中為每條記錄的\"工資\"填上值,
新建一個程序文件xiugai.prg,程序文件的內(nèi)容如下:
clear
use 職工檔案
do while .not.eof()
do case
case 職稱=\"講師\"
replace 工資 with 工資+200
case 職稱=\"副教授\"
replace 工資 with 工資+150
case 職稱=\"無\"
replace 工資 with 工資+100
endcase
skip
enddo
use
return
程序分析:循環(huán)程序由以下4個主要部分構(gòu)成:
A.循環(huán)的工作部分.它完成循環(huán)的主要工作,是循環(huán)體的主要部分.這里由do case---endcase組成.
B.循環(huán)的修改部分.它保證循環(huán)體在循環(huán)過程中,有關的量能按一定的規(guī)律變化.這里的循環(huán)修改部分是skip語句,用來實現(xiàn)依次操作文件的各條記錄.
C.循環(huán)的控制部分.它保證循環(huán)體語句按規(guī)定的循環(huán)次數(shù)正常執(zhí)行.此例中的循環(huán)控制部分是.not.eof()邏輯表達式,它表示做完所有記錄的操作.
D.循環(huán)的初始部分.它是循環(huán)控制初值.本程序中循環(huán)控制初值是隱含的,因為打開文件后,記錄指針指向首記錄,所以操作是從首記錄開始的
1.while循環(huán):
格式:
do while 條件
語句序列
[loop]
[exit]
enddo
說明:
(1).\"do while 條件\"是循環(huán)說明語句,它標志循環(huán)的開始,并判斷循環(huán)條件是否為真值;當條件為真值時,則執(zhí)行語句序列;否則跳到enddo后面的語句繼續(xù)執(zhí)行.
(2).do while和enddo之間的語句序列也被稱作循環(huán)體,是需要多次重復執(zhí)行的語句,由它完成規(guī)定的數(shù)據(jù)處理工作.
(3).循環(huán)語句中的可選項exit,用于退出循環(huán)語句,可放在循環(huán)體語句的任意位置上.若在循環(huán)體中加上該可選項,當執(zhí)行exit時,跳出循環(huán)體去執(zhí)行enddo后面的語句.通常,exit是在條件語句控制下,當條件得到滿足時便跳出循環(huán);否則永遠不能執(zhí)行exit后面的循環(huán)體語句.
(4).可選項loop,是循環(huán)短路語句,也可以放在循環(huán)體語句的任意位置上.當執(zhí)行l(wèi)oop時,其后的循環(huán)體語句部分不予執(zhí)行,直接返回到循環(huán)起始語句.loop也通常放在條件語句的控制下.
(5).enddo和do while必須成對出現(xiàn).
例:將\"職工檔案\"表中所有職稱是\"講師\"的工資加200元,副教授加150元,無職稱的加100元.
首先,我們修改一下\"職工檔案\"表的結(jié)構(gòu),為其增加一個\"工資\"字段:
在命令窗口依次執(zhí)行如下命令:
use 職工檔案
modify structure
彈出\"表設計器\"窗口,添加一個新字段:工資 N6.1,單擊\"確定\",保存更改.
再執(zhí)行browse命令,在彈出的browse窗口中為每條記錄的\"工資\"填上值,
新建一個程序文件xiugai.prg,程序文件的內(nèi)容如下:
clear
use 職工檔案
do while .not.eof()
do case
case 職稱=\"講師\"
replace 工資 with 工資+200
case 職稱=\"副教授\"
replace 工資 with 工資+150
case 職稱=\"無\"
replace 工資 with 工資+100
endcase
skip
enddo
use
return
程序分析:循環(huán)程序由以下4個主要部分構(gòu)成:
A.循環(huán)的工作部分.它完成循環(huán)的主要工作,是循環(huán)體的主要部分.這里由do case---endcase組成.
B.循環(huán)的修改部分.它保證循環(huán)體在循環(huán)過程中,有關的量能按一定的規(guī)律變化.這里的循環(huán)修改部分是skip語句,用來實現(xiàn)依次操作文件的各條記錄.
C.循環(huán)的控制部分.它保證循環(huán)體語句按規(guī)定的循環(huán)次數(shù)正常執(zhí)行.此例中的循環(huán)控制部分是.not.eof()邏輯表達式,它表示做完所有記錄的操作.
D.循環(huán)的初始部分.它是循環(huán)控制初值.本程序中循環(huán)控制初值是隱含的,因為打開文件后,記錄指針指向首記錄,所以操作是從首記錄開始的