程序控制語句(二)
7.選擇結(jié)構(gòu):
(1)簡單分支
格式:IF <邏輯表達式>
<語句|命令序列>
ENDIF
說明:該語句首先計算<邏輯表達式>的值。若<邏輯表達式>的值為真時,則執(zhí)行<語句|命令序列>;否則執(zhí)行ENDIF之后的語句。
(2)選擇分支
格式:IF <邏輯表達式>
<語句|命令序列1>
ELSE
<語句|命令序列2>
ENDIF
說明:該語句首先計算<邏輯表達式>的值,當<邏輯表達式>的值為真,則執(zhí)行<語句|命令序列1>;否則執(zhí)行<語句|命令序列2>中。執(zhí)行完<語句|命令序列1>或<語句|命令序列2>后都將執(zhí)行ENDIF之后的語句。 的語句
(3)多分支選擇
格式:DO CASE
CASE <邏輯表達式1>
<語句|命令序列1>
CASE <邏輯表達式2>
<語句|命令序列2>
......
CASE <邏輯表達式n>
<語句|命令序列n>
[OTHERWISE
<語句|命令序列n+1>]
ENDCASE
說明:執(zhí)行DO CASE語句時,將逐個判斷CASE后面的條件是否為真。只要遇到一個條件為真的CASE,就執(zhí)行其后的語句序列,語句序列執(zhí)行完畢后,跳到ENDCASE后面的語句去執(zhí)行。如果所有的CASE后面的條件都為假,則執(zhí)行OTHERWISE后面的語句序列,如果沒有OTHERWISE語句,則直接轉(zhuǎn)去執(zhí)行ENDCASE后面的語句。
8.循環(huán)結(jié)構(gòu):
(1)條件循環(huán)
格式:DO WHILE <邏輯表達式>
<語句序列1>
[LOOP]
<語句序列2>
[EXIT]
<語句序列3> ENDDO
說明:根據(jù)<邏輯表達式>的值來控制循環(huán)。值為真時,反復執(zhí)行DO WHILE與ENDDO之間的語句,直到<邏輯表達式>的值為假時,結(jié)束循環(huán)執(zhí)行ENDDO后面的語句。
LOOP的功能是直接轉(zhuǎn)到循環(huán)控制語句DO WHILE,而不執(zhí)行LOOP和ENDDO之間的命令,LOOP只能在循環(huán)結(jié)構(gòu)中使用。
EXIT的功能是直接跳轉(zhuǎn)到循環(huán)體之外,執(zhí)行ENDDO后面的語句,EXIT也只能在循環(huán)結(jié)構(gòu)中使用。
(2)計數(shù)循環(huán)語句FOR...ENDFOR
格式:FOR <內(nèi)存變量>=<初值>TO<終值>[STEP <步長>]
<語句序列>
[LOOP]
[EXIT]
ENDFOR [注釋]
說明:用數(shù)字控制的循環(huán)結(jié)構(gòu),循環(huán)的次數(shù)等于終值減去初值后除以步長再加一。循環(huán)的終止條件是內(nèi)存變量的值等于終值。初值、終值和步長的數(shù)據(jù)類型必須是整型的;程序的運行次數(shù)、從初值到終值是遞增的還是遞減的,由STEP步長決定。當步長忽略時,默認為1。
(3)數(shù)據(jù)庫循環(huán)
格式:SCAN [FOR <邏輯表達式1>|WHILE <邏輯表達式2>][<范圍>]
<語句序列1>
[LOOP]
<語句序列2>
[EXIT]
ENDSCAN
說明:對當前數(shù)據(jù)表文件中滿足條件的記錄進行加工處理。它自動移動記錄指針,當程序執(zhí)行到ENDSCAN或LOOP時,會對<邏輯表達式1>或<邏輯表達式2>進行判斷,如果條件成立,它會自動將指針移到下一個符合條件的記錄。
7.選擇結(jié)構(gòu):
(1)簡單分支
格式:IF <邏輯表達式>
<語句|命令序列>
ENDIF
說明:該語句首先計算<邏輯表達式>的值。若<邏輯表達式>的值為真時,則執(zhí)行<語句|命令序列>;否則執(zhí)行ENDIF之后的語句。
(2)選擇分支
格式:IF <邏輯表達式>
<語句|命令序列1>
ELSE
<語句|命令序列2>
ENDIF
說明:該語句首先計算<邏輯表達式>的值,當<邏輯表達式>的值為真,則執(zhí)行<語句|命令序列1>;否則執(zhí)行<語句|命令序列2>中。執(zhí)行完<語句|命令序列1>或<語句|命令序列2>后都將執(zhí)行ENDIF之后的語句。 的語句
(3)多分支選擇
格式:DO CASE
CASE <邏輯表達式1>
<語句|命令序列1>
CASE <邏輯表達式2>
<語句|命令序列2>
......
CASE <邏輯表達式n>
<語句|命令序列n>
[OTHERWISE
<語句|命令序列n+1>]
ENDCASE
說明:執(zhí)行DO CASE語句時,將逐個判斷CASE后面的條件是否為真。只要遇到一個條件為真的CASE,就執(zhí)行其后的語句序列,語句序列執(zhí)行完畢后,跳到ENDCASE后面的語句去執(zhí)行。如果所有的CASE后面的條件都為假,則執(zhí)行OTHERWISE后面的語句序列,如果沒有OTHERWISE語句,則直接轉(zhuǎn)去執(zhí)行ENDCASE后面的語句。
8.循環(huán)結(jié)構(gòu):
(1)條件循環(huán)
格式:DO WHILE <邏輯表達式>
<語句序列1>
[LOOP]
<語句序列2>
[EXIT]
<語句序列3> ENDDO
說明:根據(jù)<邏輯表達式>的值來控制循環(huán)。值為真時,反復執(zhí)行DO WHILE與ENDDO之間的語句,直到<邏輯表達式>的值為假時,結(jié)束循環(huán)執(zhí)行ENDDO后面的語句。
LOOP的功能是直接轉(zhuǎn)到循環(huán)控制語句DO WHILE,而不執(zhí)行LOOP和ENDDO之間的命令,LOOP只能在循環(huán)結(jié)構(gòu)中使用。
EXIT的功能是直接跳轉(zhuǎn)到循環(huán)體之外,執(zhí)行ENDDO后面的語句,EXIT也只能在循環(huán)結(jié)構(gòu)中使用。
(2)計數(shù)循環(huán)語句FOR...ENDFOR
格式:FOR <內(nèi)存變量>=<初值>TO<終值>[STEP <步長>]
<語句序列>
[LOOP]
[EXIT]
ENDFOR [注釋]
說明:用數(shù)字控制的循環(huán)結(jié)構(gòu),循環(huán)的次數(shù)等于終值減去初值后除以步長再加一。循環(huán)的終止條件是內(nèi)存變量的值等于終值。初值、終值和步長的數(shù)據(jù)類型必須是整型的;程序的運行次數(shù)、從初值到終值是遞增的還是遞減的,由STEP步長決定。當步長忽略時,默認為1。
(3)數(shù)據(jù)庫循環(huán)
格式:SCAN [FOR <邏輯表達式1>|WHILE <邏輯表達式2>][<范圍>]
<語句序列1>
[LOOP]
<語句序列2>
[EXIT]
ENDSCAN
說明:對當前數(shù)據(jù)表文件中滿足條件的記錄進行加工處理。它自動移動記錄指針,當程序執(zhí)行到ENDSCAN或LOOP時,會對<邏輯表達式1>或<邏輯表達式2>進行判斷,如果條件成立,它會自動將指針移到下一個符合條件的記錄。

