孫學進 王德貴
我們繼續學習XRmaker的條件控制與循環控制,并制作輸出素數的案例。近期XRmaker的版本更新了,我們這期的版本與之前的6篇在資源上有些差異,但程序代碼沒有變化。
1.順序結構
順序結構是最簡單的程序結構,程序中的操作是按照它們在源代碼中的排列順序,自上而下依次執行。
2.分支結構
也稱為選擇結構,用于判斷給定的條件,進而控制程序的流程。它會根據某個特定的條件進行判斷后,選擇其中一支執行。
(1)單分支:判斷條件表達式的值,如果值為真就執行語句塊,否則執行后面的語句。
(2)雙分支:判斷條件表達式的值,如果值為真就執行語句塊1,否則執行語句塊2。
(3)多分支:判斷條件表達式1的值,如果值為真就執行語句塊1,否則判斷條件表達式2的值,如果值為真,執行語句塊2,如果條件表達式2的值為假,則執行語句塊3,這是三分支的典型流程圖。
(4)嵌套
嵌套即是分支語句中還有分支語句,可以多重嵌套。
3.循環結構
(1)定義
循環結構是指在程序中需要反復執行某個或某些操作,直到條件為假或為真時才停止循環的一種程序結構。
(2)三要素:循環變量初始化、循環體和循環終止條件。
每個循環變量初始化后,要控制變量的變化,再確定終止條件,確定循環的次數,最后就是要反復執行的語句,稱為循環體。
(3)流程圖
循環結構在程序框圖中是利用判斷框來表示,兩個出口分別對應著條件成立和條件不成立時所執行的不同指令,條件成立則指向循環體,條件不成立則退出循環。
(4)嵌套
在循環體中還有循環結構,可以多重嵌套。嵌套層數越多,復雜度越高,如果數據量大,則運行緩慢。
在XRmaker中,條件控制沒有雙分支,只有兩個單分支結構“如果…那么”“如果不…那么”的積木塊,即判斷條件表達式的值是否為真(假),如果為真(假),則執行結構內積木,否則跳出循環執行后面的積木。
這兩個分支結構放在一起,如果條件表達式一樣,其實就類似一個雙分支結構,程序設計時可以靈活運用這個特點。
1.如果…那么
這是分支語句的基本構成,條件成立,即條件表達式的值為真才執行。例如,如果一個數除以2的余數為0,那么它就是偶數。
2.如果不…那么
這是否定的分支語句,即條件表達式的值為假時,才會執行。例如,如果不是一個數除以2的余數為0,那么它就是奇數。或者描述為:如果一個數除以2的余數不為0,那么它就是奇數。這兩種形式的運行結果是一樣的。
在XRmaker中,循環控制有4個積木,它們的使用稍有不同。
1.重復執行n次
一般用于有確定次數或是在一定范圍內的循環結構中,不需要判斷條件表達式。需要注意的是,次數不能使用變量。因為沒有整形(int)數據,即使取整運算,也不能正常運行。這是軟件當前版本的bug,我已經提交反饋,以后會修正。
我們前面講過的攝像機運動,就是前進100次,每次0.2米,那么運動的距離就是20米。
2.循環
循環積木塊,需要滿足條件表達式(條件表達式的值為真)才會執行。
3.重復執行直到
重復執行一個程序段,直到條件表達式的值為真才結束循環。
4.重復執行
這是無條件循環,即程序會一直循環下去,如果沒有終止條件,則相當于一個死循環,因此設計時要根據情況謹慎使用。
1.等待N秒:在執行程序時,需要暫停運行,等待一定時間,可以是整數,也可以是浮點數。
2.在…之前一直等待:在條件表達式為真時,才執行下一條語句,而在此之前一直等待。
3.停止所有腳本:即停止運行所有程序。
這個案例主要是應用所學知識,輸出一定范圍內的素數。
1.資源列表
輸出素數的算法,采用最基本,也最容易理解的方法。就是從2開始檢驗,是不是能被小于它的數整除,如果不能被任何數整除則為素數,通過模型顯示出來。
比如,輸出50以內的素數,輸出方法列舉以下三種,均為雙重循環,內循環均采用“重復執行-直到”型,當然還有多種方法,不多述。
(1)重復N次-重復執行直到
外循環用“重復執行N次”,因為從2開始遞增,所以重復49次,即可輸出50以內素數。
(2)重復執行-重復執行直到
外循環用“重復執行”,從2開始遞增,輸出素數,由于重復執行沒有終止條件,是無條件循環,因此需要判斷大于50時,則停止所有腳本,結束程序。
(3)循環-重復執行直到
外循環用“循環”,從2開始遞增,要滿足條件“小于50”,即可輸出50以后素數。
2.小結
本節內容主要是學習“控制”模塊中常用的條件控制和循環控制,其他控制在后面章節學習。
本案例主要是利用條件、循環、變量、運算等所學知識點進行基本程序設計,而程序沒有進行優化。
輸出素數的程序實現方法很多,各位朋友可以自行研究。