陳述式
Statements(陳述式)是用來控制變數要如何操作、怎麼進行操作的程式碼,
Blackey Script的陳述式同樣借鑒了C++的語法進行撰寫。
一般而言,程式碼的多數比例為運算陳述式,
運算陳述式將會由上到下依序執行,
執行過程遇到其他陳述式時則可能進行跳轉。
各種陳述式語法條列如下表:
陳述式語法 |
---|
Expression statement |
Selection statement |
Iteration statement |
Jump statement |
接下來,我們對每一種不同的陳述式展開說明。
運算陳述式 – Expression statement
運算陳述式的語法相當簡單,注意語法內的方括號是需要忽略的。
[expression ] ;
運算陳述式會依序執行,最常見的運算陳述式如指派/呼叫函式等,舉例如下:
x = 1;
y = 1 * 2;
print(y);
選擇陳述式 – Selection statement
目前Blackey Script在選擇陳述式只支援if-else陳述式。
if-else陳述式使用運算陳述式做為條件來控制分支,
當if運算式得到為非零值時,就會跳轉進入if區塊中,而略過其他區塊。
如果運算的值為零,則會略過if區塊,跳轉進入else區塊 (如果有else區塊的話)。
Case 1
// 如果expression運算為非零,則進入if區塊,運行statement
if ( expression ) {statement1;
…}
Case 2
// 如果expression運算為非零,則進入if區塊,運行statement1,忽略else區塊
if ( expression ) {statement1;
…} else {
// 如果expression運算為零,則進入else區塊,運行statement2,忽略if區塊
statement2;
…}
Case 3
// 如果expression1運算為非零,則進入if區塊,運行statement1,忽略其他區塊
if ( expression1 ) {statement1;
…} else if (expression2) {
// expression1運算為零時,開始運算expression2,
// 如果expression2運算為非零,則進入該區塊,運行statement2,忽略else區塊
statement2;
…} else {
// 當expression1跟expression2都運算為零時,執行else區塊
statement3;
…}
舉例如下:
x = 1;
y = 2;
if (x < y) {print(“x 小於 y”);
} else {
print(“x 大於等於 y”);
}
// 印出 “x 小於 y”
疊代陳述式 – Iterator statement
疊代陳述式會使指定區塊依據某個條件來決定執行次數,
次數可以為零次或是多次,一般我們將疊代陳述式稱作迴圈。
在疊代陳述式未達到終止條件時,如遇到跳躍陳述式也可能提早中止迴圈。
Blackey Script目前僅支援while陳述式,語法如下:
while ( expression ) {
statement;
…}
舉例如下:
x = 0;
while (x < 5) {print(x);
x = x + 1;}
// 印出 0, 1, 2, 3, 4
跳躍陳述式 – Jump statement
跳躍陳述式會從目前的區塊進行跳轉,
當前的區塊可能是迴圈,或者是自定義函數。
Blackey Script目前支援三種跳轉陳述式,語法如下:
跳躍陳述式語法 | |
break; | 跳過該區塊剩餘的語句, 離開最前的迴圈 |
continue; | 跳過該區塊剩餘的語句, 開始下一次的迴圈循環 |
return [expression] ; | 跳過該區塊剩餘的語句, 回傳陳述表達式的運算結果。 |
break / continue
break/continue陳述式通常會搭配if-else陳述式來提早跳出迴圈,舉例如下:
break case
x = 0;
while (x < 100) {print(x);
x = x + 1;
if (x > 5) {print(“break out”);
break;}
}
print(“done”);
// 印出 0, 1, 2, 3, 4, 5, “break out”, “done”
continue case
x = 0;
while (x < 100) {x = x + 1;
if (x > 5) {continue;
}
print(x);}
print(“done”);
// 印出 1, 2, 3, 4, 5, “done”
return
return陳述式的使用方式通常用於自定義函數中,
如果你直接使用在腳本中,則會在執行到return的時候終止整個腳本的運行。
x = 0;
while (x < 100) {print(x);
x = x + 1;
if (x > 5) {print(“break out”);
return 0;}
}
print(“done”);
// 印出 0, 1, 2, 3, 4, 5, “break out”
// 跟 break 的範例不同,這邊不會印出”done”
exit
exit陳述式的使用方式通常用於自定義函數中,
在執行到exit的時候就終止整個腳本的運行。
帶入非0值時,會在日誌視窗印出日誌,方便你確認錯誤的發生點:
def quitCheck(val) {
if (val == 3) {
exit(1);
}
}
x = 0;
while (x < 100) {x = x + 1;
quitCheck(x);
print(x);}
print(“done”);
// 印出 1, 2, 3, 4
// 印出 exit(1)
[Line: 13] exit error code 1.000000