




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
ABAP/4ABAP/4中流控制的概 編程邏輯表達(dá) 比較所有的字段類 比較字符串和數(shù)字 二進(jìn)制位結(jié)構(gòu)的比 檢查字段是否屬于某一范 檢查選擇條 組合幾個邏輯表達(dá) 編程分支和循 使用IF的條件分 使用CASE的條件分 使用DO的無條件循 使用WHILE的條件循 終止循 ABAP/4ABAP/4ABAP/4程序流的和之間的差別在ABAP/4中流控制的概念(頁63)中解釋。(CFORTRAN等等)下列描ABAP/4(如,CFORTRANPASCAL),ABAP/4制程序流的標(biāo)準(zhǔn)關(guān)鍵字。這些關(guān)鍵字用于 (IF、 (DO、然而,ABAP/4內(nèi)部控制外部控制 外部控制由引導(dǎo)。由ABAP/4程序(系統(tǒng)程序或用戶程序)或者交互式用戶輸()ABAP/4句處理。這使得ABAP/4成為驅(qū)動編程語言,類似于的VisualBasic。時間和ABAP/4程序的連接由關(guān)鍵字提供。ABAP/4程序中的每個語句都屬于特別的事件關(guān)鍵字。即使在程序中沒有指定任何關(guān)鍵字,所有語句都自動歸屬于標(biāo)準(zhǔn)關(guān)鍵字(START-OF-SELECTION),與程序中語句的次序完全不相干所有屬于某一特定關(guān)鍵字的語句形成一個處理塊。處理塊是一個在發(fā)生時提到的標(biāo)準(zhǔn)關(guān)鍵字定義的順序處理。ABAP/4()ATLINE-SELECTIONATLINE-SELECTION.MOVE'X'TOFLAG.F2ATLINE-SELECTION和下一個事件關(guān)鍵字之間的所有語句將被處理關(guān)于外部控制的詳細(xì)信息,如及其如何與ABAP/4程序相互作用的信息,參見通過控制ABAP/4程序流ABAP/4信息,參見ABAP/4程序布局(頁2–6))。要控制ABAP/4輯相關(guān)語句塊(這些組成控制結(jié)構(gòu)。其中的每個語句塊都執(zhí)ABAP/4信息,參見ABAP/4程序布局(頁2–6))??梢杂肐F、CASE、DO和WHILE使用條件控制程序中的內(nèi)部流。要用指定條件,請使用比較數(shù)據(jù)字段的邏輯表達(dá)式,如下所示:....<F1><operator><F2>IF、CHECK和F1F2除上述比較之外,還可以執(zhí)試以檢查數(shù)據(jù)字段是否完全滿足一定條件??梢允褂眠@些測試:=<>除基本字段外,還可以將結(jié)構(gòu)數(shù)據(jù)類型和上表中的運算符結(jié)合起來作為操作數(shù)。字見比較內(nèi)表(頁Error!Notavalidlink.)。(鍵入轉(zhuǎn)換(頁6–36)(類型F)F(P)P(D)(T)為類型D或T。不支持日期和時間字段之間的比較,這會導(dǎo)致程序中斷。(C)(類型X),則系統(tǒng)將類型X的操作數(shù)轉(zhuǎn)換為類型C。(C)(N)這兩種操作數(shù)都轉(zhuǎn)換為類型P。DATA:DATA: TYPEFVALUE TYPEPVALUE'50.00'DECIMALS2, TYPEIVALUE'30.00'.WRITE'Thefollowinglogicalexpressionsaretrue:'.IFF>=P.WRITE:/F,'>=',P.WRITE:/F,'<',P.IFIEQPWRITE:/I,'EQ',P.WRITE:/I,'NE',P.Thefollowinglogicalexpressionsare1.000000000000000E+02 30IF出來。如果邏輯表達(dá)式為假,則將相反表達(dá)式顯示在屏幕上。因為除類型N和C算之一的比較時,操作數(shù)應(yīng)該是類型N或C。CO
F1F2<F1>COSY-FDPOSF1SY-FDPOSF1F2符的偏移量。CNF1F2<F1>CNSY-FDPOS包含<F1F2,SY-FDPOS包含<F1>的長度。CAF1F2<F1>CASY-FDPOS包含<F1>中第一個也在<F2>中出現(xiàn)的字符的偏移量。如果為假,SY-FDPOS包含<F1>的長度。NAF1F2<F1>NASY-FDPOSF1度。如果為假,則SY-FDPOS包含<F1>中在<F2>內(nèi)出現(xiàn)的第一個字符的偏移量。CSF1F2<F1>CS為真。忽略尾部空格并且比較不區(qū)分大小寫。如果比較結(jié)果為真,則系統(tǒng)字段SY-FDPOS包含<F2>在<F1>中的偏移量。如果為假,SY-FDPOS包含<F1>的長度。NSF1F2<F1>NS不SY-FDPOS包含<F1SY-FDPOSF2F1CPF1F2<F1>CPF2>屬于類型CF2 * 忽略尾部空格且比較SY-FDPOS在<F1,SY-FDPOSF1F2字符#指定 通配符"* #NPF1F2<F1>NP為真。在<F2CPSY-FDPOS包含<F1SY-FDPOSF2F1DATA:DATA:F1(5)TYPECVALUE<F1>,F2(5)TYPECVALUEIFF1<operator>WRITE:/'Comparisontrue,SY-FDPOS=',SY-FDPOS.WRITE:/'Comparisonfalse,SY-FDPOS=',SY-FDPOS.F1F2SY- 'ABCD真5 假2'ABCD真3'ABCD假5 真1 假5'ABAB 假0 真5 真1 假5 假1 真5真1假5假1真5要將邏輯表達(dá)式初始操作數(shù)第一字節(jié)的二進(jìn)制位結(jié)構(gòu)與第二操作數(shù)的進(jìn)行比較,請使用下列操作符。O二進(jìn)制位是Z二進(jìn)制位是M1(類型X)其長度為一個字節(jié)且數(shù)字值直接與二進(jìn)制位結(jié)構(gòu)相關(guān)。O<hex1<f>1<f>OZ<hex1<f>0<f>ZMhex>1f>10<f>MDATA:CVALUEDATA:CVALUEHEXDECTYPEX,ITYPEI.HEXDEC=DO256I=IFCOIFCOWRITE:/HEXDEC,I.HEXDEC=HEXDEC+這里,使用運算符O將字符‘C‘0’與‘FF’(10進(jìn)255)16HEXDEC10IHEXDECI期間,通過使用自動類型轉(zhuǎn)換確定。如果比較結(jié)果為真,則在屏幕上顯式 進(jìn)制值。下表列出這些數(shù)的二進(jìn)制位結(jié)構(gòu)0123123CASCII67167BETWEEN....<F1>BETWEEN<F2>AND<F3>F1F2F3IF<F1>GE<F2>AND<F1>LEDATA:DATA:NUMBERTYPENUMBER=IFNUMBERBETWEEN3ANDFLAG=FLAG='這里,如果NUMBER37FLAGX”ISINITIAL....<f>ISINITIAL如果<f或結(jié)構(gòu)化的()CLEAR<f>(重置缺省值(頁6–10)。DATADATAFLAGVALUE'X'.IFFLAGISINITIAL.WRITE/'FlagisWRITE/'FlagisnotCLEARIFFLAGISWRITE/'FlagisWRITE/'Flagisnot這產(chǎn)生如下輸出:FlagisnotinitialFlagisinitial.這里,DATAFLAGVALUE‘X’。執(zhí)行CLEAR語句之后,將其重置為初始值。IN參數(shù)的邏輯...<f>IN<seltab><f>seltab>關(guān)于選擇條件的詳細(xì)信息,參見使用選擇標(biāo)準(zhǔn)。通過使用邏輯連接運算符AND、OR和NOT_真,則表達(dá)式之間要用AND連接。 即為真,則表達(dá)式之間要用OR連接。 NOTNOT優(yōu)先于AND,AND優(yōu)先于ORABAP/4ABAP/4從左到右處理邏輯表達(dá)式。如果確定組件表達(dá)式之一是真或假,就不再執(zhí)行就是將經(jīng)常為比較放置在AND鏈的開頭,而將費時的比較,如字符串查找放等DATA:F TYPEDATA:F TYPEFVALUE'100.00',N(3)TYPENVALUE'123',C(3)TYPECVALUE'456'.WRITE'Thefollowinglogicalexpressionistrue:'.IF(CLTN)AND(NGTF).WRITE:/'(',C,'lt',N,')ANDWRITE:/'(',C,'ge',N,')OR這產(chǎn)生如下輸出:(456ge123)OR(123le1.000000000000000E+02IF上顯示出來。如果為假,則屏幕上出現(xiàn)相反的表達(dá)式??梢栽诔绦蛑卸x條件和無條件分支和循環(huán)。為此,ABAP/4提供了幾個在下列中描述的語句。IFIF語句允許依據(jù)條件將程序流轉(zhuǎn)到特定的語句塊中。該語句塊包括IF語句及其后面的ELSEIF、ELSE或ENDIF之間的所有命令。IF<statementblock>ELSEIF<statementELSEIF<statement<statementblock>如果第一個條件是真,系統(tǒng)將執(zhí)行所有語句直到第一個語句塊結(jié)束,然后繼續(xù)處理ENDIFELSEIFIFELSEIFIFELSEIF條件都為假,則執(zhí)行ELSE開始的語句塊。最后的語句塊必須用ENDIF結(jié)束。要要 表達(dá)IF和ELSEIF語句中的條件,可以使用任何編程邏輯表達(dá)式(頁ABAP/4允許無限地嵌套IF-ENDIF語句塊,但是必須在相同的處理塊中終止。換句話說,就是IF-ENDIF塊不能包含 關(guān)鍵字。DATA:TEXT1(30)VALUE'Thisisthefirsttext',TEXT2(30)VALUE'Thisisthesecondtext',TEXT3(30)VALUE'Thisisthethirdtext',STRING(5)VALUE'eco'.IFTEXT1CSWRITE/'Condition1isELSEIFTEXT2CSWRITE/'Condition2isELSEIFTEXT3CSWRITE/'Condition3isWRITE/'NoconditionisCondition2isTEXT2CSSTRING“ecoTEXT2CASECASECASEWHEN<statementblock>WHEN<F2>.<statementblock>WHEN<F3>.<statementblock>WHEN...WHEN<statementblock>系統(tǒng)執(zhí)行WHEN語句之后的語句塊,如果<f>內(nèi)容等于<fi>的內(nèi)容,且繼續(xù)處理ENDCASE語句后面的語句。如果<f>fi>的內(nèi)容,則執(zhí)行選項WHENOTHERS后面的語句塊。最后的語句塊必須用ENDCASE結(jié)束。CASEIFIF<f>=<statementblock>ELSEIF<f>=<F2>.<statementblock>ELSEIF<f>=<F3>.<statementblock>ELSEIF<f>=...<statementblock>ABAP/4CASEABAP/4CASEENDCASEIFENDIF但必須在同一處理塊中終止。DATA:TEXT1VALUE'X',TEXT2VALUE'Y',TEXT3VALUE'Z',STRINGVALUECASEWHENWRITE:/'Stringis',WHENWRITE:/'Stringis',WHENWRITE:/'Stringis',WHENWRITE:/'Stringisnot',TEXT1,TEXT2,StringisnotXYWHENOTHERSSTRINGAX“Y”或“Z”,。DODODO[<n>TIMES][VARYING<f>FROM<F1>NEXT<statementblock>在發(fā)現(xiàn)EXIT、STOP或REJECTDO引導(dǎo)、ENDDO結(jié)束的語句塊(參見終止循環(huán)(頁63)??梢允褂肨IMES選項限制循環(huán)次數(shù)。<n>可以是文字或變量。如果<n>是0或負(fù)數(shù),系統(tǒng)不執(zhí)行該循環(huán)。SY-INDEXDODOTIMES含一個EXIT、STOP或REJECT語句,以便系統(tǒng)能夠退出循環(huán)。DOWRITESY-IFSY-INDEX= 這里,處理3EXITDO12321232TIMESDO2WRITESY-INDEX.DO3WRITESY-INDEX.1232TIMESDO2WRITESY-INDEX.DO3WRITESY-INDEX.123段SY-INDEX記錄每個循環(huán)各自的循環(huán)次數(shù)。F1F2>、<F3如果在DOF1F2>、<F3DOVARYINGDATA:BEGINOFWORD1(4)VALUE'This',WORD2(4)VALUE'is',WORD3(4)VALUE'a',WORD4(4)VALUE'loop',ENDOFTEXT.DATA:STRING1(4),DO4TIMESVARYINGSTRING1FROMTEXT-WORD1NEXTTEXT-WRITEIFSTRING1='is'.STRING1='was'.DO2TIMESVARYINGSTRING1FROMTEXT-WORD1NEXTTEXT-WORD3VARYINGSTRING2FROMTEXT-WORD2NEXTTEXT-WORD4.WRITE:STRING1,This Thiswas TEXT代表內(nèi)存中四個等距字段序列。每次執(zhí)行第一個DO循環(huán)時,都依次將其組件分配到STRING1中。如果STRING1包含“is”,則將其改變?yōu)椤皐as”,而且自動將TEXT-WORD2改變?yōu)椤皐as”。每次執(zhí)行第二個DO循環(huán)時,將TEXT的組件傳遞給STRING1和STRING2。WHILEWHILEWHILE<condition>[VARY<f>FROM<F1>NEXT<statementblock>只要<condition>是真,或系統(tǒng)發(fā)現(xiàn)EXIT、STOP或REJECT語句,系統(tǒng)將繼續(xù)執(zhí)行由WHILE語句引導(dǎo)、ENDWHILE結(jié)束的語句塊(參見終止循環(huán)(頁63)。<condition68)系統(tǒng)字段SY-INDEX中包含已執(zhí)行的循環(huán)次數(shù)。WHILEWHILEVARYDO循環(huán)的VARYING(DO條件循環(huán)(頁77)<f>重新賦值。<F1>、<F2<F3將<F1>分配給<fF2>分配給<fWHILE語句中使用多個VARY選項。WHILE,WHILE為假,或者系統(tǒng)能夠找到EXIT、STOP或REJECT語句退出循環(huán)。 TYPEIVALUE0,TYPEIVALUESTRING(30)TYPECVALUE'TestSTRL=STRLEN(STRING).WHILESTRINGNESPACE.WRITESTRING(1).LENGTH=SY-INDEX.SHIF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 零售業(yè)行業(yè)-銷售數(shù)據(jù)統(tǒng)計表
- 成長的煩惱故事評析報告
- 小學(xué)語文成語故事解讀
- 西餐原料知識培訓(xùn)課件
- 種子委托生產(chǎn)合同
- 大學(xué)英語口語演講比賽觀后感
- 全球數(shù)字化產(chǎn)品購銷合同
- 城市基礎(chǔ)設(shè)施投資協(xié)議
- 新員工入職指引及培訓(xùn)會議紀(jì)要
- 中學(xué)生文學(xué)作品征文
- 追悼會主持詞開場白-追悼會流程主持詞
- 國家基本藥物臨床應(yīng)用指南最完整版
- 急性髓系白血病小講課
- 大氣冬季滑雪旅游宣傳
- 2016-2023年株洲師范高等專科學(xué)校高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 項目成本管控要素清單
- 基層公職人員禁毒知識講座
- 中小學(xué)生綜合實踐基地(學(xué)校)考核指標(biāo)體系評分標(biāo)準(zhǔn)
- 2024深海礦產(chǎn)資源開采系統(tǒng)技術(shù)指南
- 一+《展示國家工程++了解工匠貢獻(xiàn)》(教學(xué)課件)-【中職專用】高二語文精講課堂(高教版2023·職業(yè)模塊)
- 北京長峰醫(yī)院4.18火災(zāi)事故案例分析
評論
0/150
提交評論