GameMaker|for迴圈|程式基礎

閱讀時間約 5 分鐘

這篇內容,將會講解什麼是「for迴圈」,以及與「for迴圈」相關的知識。有了這些概念,各位會更容易理解,要如何設計程式碼。

本篇教學所使用的系統是Windows 10,如果有按鍵相關的說明,會用Windows的系統來解釋。如果你用的是Mac系統,再麻煩自行換成相對應的按鍵。

raw-image


前置知識


在學習本篇內容之前,最好具備以下的前置知識,以免看不懂這篇教學的內容。


for迴圈的簡介


如果我們希望,讓某段程式碼,重複執行N次,那我們就可以考慮使用「for迴圈」。

由於迴圈的種類有很多種,所以這種語法,通常都會稱呼為「for迴圈」,而不會簡稱為for,或是迴圈。

以下我們展示一段,for迴圈的使用範例:

//讓a++的程式碼,重複執行10次​
for (var _i = 0 ; _i <= 9 ; _i ++) {
a ++ ;
}


我們可以把for迴圈,理解成下面5個步驟:


1.將一個變數,進行賦值的動作


在上面的範例裡,我們定義了一個「_i」的局部變數,並將他設定為0。

這個變數的用途,是用來判定,for迴圈是否要繼續執行。


2.檢查for迴圈是否要結束


在上面的範例裡,用來檢查的判別式為「_i <= 9」,意思是,只要_i小於等於9,那for迴圈就繼續執行。

這邊給各位兩個口訣:「true就執行」或「false就跳出」,選一個記起來就好。


3.執行for迴圈裡的程式碼


在上面的範例裡,執行的程式碼是「a ++」。換句話說,每執行一次for迴圈,a就會執行+1的動作。


4.遞增或遞減,用來判定for迴圈的變數


在上面的範例裡,我們是用「_i ++」的程式碼,這表示每次執行完,for迴圈內的程式碼之後,_i就會執行+1的動作。

如果要用遞減,那就是使用「--」的符號。


5.返回步驟2,決定要不要繼續執行


以這段範例來說,_i會從0跑到9,換句話說,這個for迴圈總共會執行10次。


for迴圈


從上面的範例中,我們已經理解了,for迴圈的基本結構,這邊要再講解一些,使用for迴圈時,所需要知道的事項。

首先是變數範圍(Variable Scope),在上面的範例中,我們是使用局部變數,來定義_i,這是一個常見的作法。

也就是說,當這個for迴圈結束之後,_i就會被刪除,不會留在記憶體當中,畢竟,這個變數只是用來充當「計時器」,沒有必要繼續留著。


再來,這個_i變數,其實也可以應用在for迴圈裡面,例如以下的程式碼:

//利用for迴圈,讓a等於1加到10
a = 0 ;
for (var _i = 1 ; _i <= 10 ; _i ++) {
a = a + _i ;
}


第一次執行,a會等於1(0+1),第二次執行,a會等於3(1+2),第三次執行,a會等於6(3+3),以此類推下去,最後a就會變成1到10的總和。

因為變數遞增的性質,for迴圈十分適合用在,用來改變陣列(Array)裡的數值。

關於這方面的應用,將會在陣列的教學中講解:

GameMaker|Array 陣列|程式基礎


break


在switch的教學中,有講到break的語法,而在迴圈當中(任何類型的迴圈),也能使用break語法。

在迴圈當中,如果遇到break,表示終止「目前運行的整個迴圈」,例如以下的程式碼:

//當_i等於6時,迴圈中斷,因此a只會從1加到5
a = 0 ;
for (var _i = 1 ; _i <= 10 ; _i ++) {
if (_i == 6) {
break ;
}
a = a + _i ;
}


上述之所以會說「目前運行的」,是因為迴圈也能「套娃式」的使用,如果是在內層的迴圈裡使用break,那跳出去之後,外層的迴圈依然會繼續執行。


continue


上一個break,是終止整個迴圈,那能不能,只跳過「某一段的迴圈」就好?答案是使用

「continue」的語法。

以下是continue的範例:

//只跳過+5的迴圈,其他迴圈都正常執行
a = 0 ;
for (var _i = 1 ; _i <= 10 ; _i ++) {
if (_i == 5) {
continue ;
}
a = a + _i ;
}


這邊要注意一點,不管是break,或是continue,他們的「位置」很重要,因為在這些語法上方的程式碼,依然會執行,只有下方的內容,會被斷掉,例如:

//如果把break,擺到這個位置,那a就會變成1加到6
a = 0 ;
for (var _i = 1 ; _i <= 10 ; _i ++) {
a = a + _i ;
if (_i == 6) {
break ;
}
}

//完全沒有意義,因為加完才跳過,所以a最後還是變成1加到10
a = 0 ;
for (var _i = 1 ; _i <= 10 ; _i ++) {
a = a + _i ;
if (_i == 5) {
continue ;
}
}




🔔如果內容對你有幫助,可以按個喜歡,這樣就能讓更多人,接觸到這些棒棒的內容🔔


✨祝各位也能開心的做出好遊戲✨

免費、開心、簡單,這是我做教學的理念,我希望透過我的行動,讓人們找回自我學習的快樂,讓那些資源稀少的自學者們,也能朝著自己的夢想來前進。讓我們一起開心的做出遊戲吧!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
這篇內容,將會講解什麼是「switch」,以及與「switch」相關的知識。包括switch的簡介、switch、break。
這篇內容,將會講解什麼是「if else」,以及與「if else」相關的知識。包括if else的簡介、if、if else、else if、套娃式的if。
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
這篇內容,將會講解什麼是運算子,以及與運算子相關的知識。包括運算子的簡介、賦值運算子、算術運算子、遞增/遞減、比較運算子、邏輯運算子。
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
這篇內容,將會講解什麼是腳本函式,以及與腳本函式相關的知識。包括腳本的簡介、使用函式(或全域變數)的注意事項、定義全域變數、定義函式、什麼是宣告、局部變數的應用。
這篇內容,將會講解什麼是「switch」,以及與「switch」相關的知識。包括switch的簡介、switch、break。
這篇內容,將會講解什麼是「if else」,以及與「if else」相關的知識。包括if else的簡介、if、if else、else if、套娃式的if。
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
這篇內容,將會講解什麼是運算子,以及與運算子相關的知識。包括運算子的簡介、賦值運算子、算術運算子、遞增/遞減、比較運算子、邏輯運算子。
這篇內容,將會講解什麼是方法,以及與方法相關的知識。包括定義Method、Method Variable 方法變數、跨區使用Method、使用函式時要注意括號。
這篇內容,將會講解什麼是腳本函式,以及與腳本函式相關的知識。包括腳本的簡介、使用函式(或全域變數)的注意事項、定義全域變數、定義函式、什麼是宣告、局部變數的應用。
你可能也想看
Google News 追蹤
Thumbnail
前言 Power Automate #07|Power Automate Desktop 迴圈功能教學(上)向大家介紹了什麼是迴圈,並詳細說明了 For 迴圈與 While 迴圈的應用。本篇將接續介紹「迴圈」的另外兩個強大功能:
Thumbnail
在寫程式時,重複執行指令是常見需求。Python 提供了兩種迴圈結構:for-in 迴圈和 while 迴圈。for-in 迴圈適合已知迴圈次數或進行容器迭代;while 迴圈則用於不確定迴圈次數的情境。本文將介紹這兩種迴圈的基本用法及練習範例。
Thumbnail
在流程控制中,最常用的就是for loop 或是 while loop 語法了。 最常見的場景就是根據條件判斷式,重複執行特定的指令。 如果要在python寫出類似C/C++ for loop,可以怎麼寫呢? 透過索引去進行迭代 for var in range( start=0, sto
※ 迴圈控制的兩個指令:break(跳脫)、continue(繼續) break(跳脫):當遇到一個需要強制脫離迴圈的情境,使用break(跳脫)就會直接跳出迴圈。 continue(繼續):用於跳過迴圈目前的迭代,直接開始下一次迭代的執行。 造成無限迴圈的例子: 說明: 當 x 的值
※ 何謂巢狀迴圈(NESTD LOOP): 指的是一個迴圈內包含另一個迴圈的結構。在程式設計中,這種結構常用於需要進行多層次迭代的場合,例如處理多維數組、逐行逐列處理表格資料等。 ※ 例子:九九乘法表 說明: 外層迴圈:for (let i = 1; i <= 9; i = i + 1) 這
※ 迴圈(for loop)介紹: 迴圈的用途是重複執行程式碼,只要條件滿足,就會執行特定的動作。 for (let i = 0; i < 10; i = i + 1) { console.log(i); } 說明: for:對於。 let:因為迭代器的數值會一直改變所以要用let
Thumbnail
有別於上一篇for迴圈[Python基礎]流程控制for迴圈,while迴圈則常常被說是無限迴圈,若未到達跳脫的條件,是不會停止的。 在日常生活中,我們也常常用到這個概念,例如泡奶粉,要一直攪拌到粉都溶解了為止,其中的一直跟為止就等於while迴圈概念一樣,一直做到某個條件滿足了被觸發才停止。
Thumbnail
for,while,do while語法介紹 for loop for比較偏向固定圈數型的迴圈 語法 for(計數變數初值; 布林運算式 ; 增量運算) { : 一般指令; : }
Thumbnail
巢狀迴圈For loop介紹結構及範例說明 巢狀迴圈 巢狀迴圈是在一個迴圈內包含另一個迴圈的結構 簡單來說,就是內迴圈做完,才會在跑到外迴圈,接著在做內迴圈
Thumbnail
前言 Power Automate #07|Power Automate Desktop 迴圈功能教學(上)向大家介紹了什麼是迴圈,並詳細說明了 For 迴圈與 While 迴圈的應用。本篇將接續介紹「迴圈」的另外兩個強大功能:
Thumbnail
在寫程式時,重複執行指令是常見需求。Python 提供了兩種迴圈結構:for-in 迴圈和 while 迴圈。for-in 迴圈適合已知迴圈次數或進行容器迭代;while 迴圈則用於不確定迴圈次數的情境。本文將介紹這兩種迴圈的基本用法及練習範例。
Thumbnail
在流程控制中,最常用的就是for loop 或是 while loop 語法了。 最常見的場景就是根據條件判斷式,重複執行特定的指令。 如果要在python寫出類似C/C++ for loop,可以怎麼寫呢? 透過索引去進行迭代 for var in range( start=0, sto
※ 迴圈控制的兩個指令:break(跳脫)、continue(繼續) break(跳脫):當遇到一個需要強制脫離迴圈的情境,使用break(跳脫)就會直接跳出迴圈。 continue(繼續):用於跳過迴圈目前的迭代,直接開始下一次迭代的執行。 造成無限迴圈的例子: 說明: 當 x 的值
※ 何謂巢狀迴圈(NESTD LOOP): 指的是一個迴圈內包含另一個迴圈的結構。在程式設計中,這種結構常用於需要進行多層次迭代的場合,例如處理多維數組、逐行逐列處理表格資料等。 ※ 例子:九九乘法表 說明: 外層迴圈:for (let i = 1; i <= 9; i = i + 1) 這
※ 迴圈(for loop)介紹: 迴圈的用途是重複執行程式碼,只要條件滿足,就會執行特定的動作。 for (let i = 0; i < 10; i = i + 1) { console.log(i); } 說明: for:對於。 let:因為迭代器的數值會一直改變所以要用let
Thumbnail
有別於上一篇for迴圈[Python基礎]流程控制for迴圈,while迴圈則常常被說是無限迴圈,若未到達跳脫的條件,是不會停止的。 在日常生活中,我們也常常用到這個概念,例如泡奶粉,要一直攪拌到粉都溶解了為止,其中的一直跟為止就等於while迴圈概念一樣,一直做到某個條件滿足了被觸發才停止。
Thumbnail
for,while,do while語法介紹 for loop for比較偏向固定圈數型的迴圈 語法 for(計數變數初值; 布林運算式 ; 增量運算) { : 一般指令; : }
Thumbnail
巢狀迴圈For loop介紹結構及範例說明 巢狀迴圈 巢狀迴圈是在一個迴圈內包含另一個迴圈的結構 簡單來說,就是內迴圈做完,才會在跑到外迴圈,接著在做內迴圈