Array_Compare -  (內建函數) 陣列函數
語法:
比較陣列A跟陣列B內的元素
Array_Compare(陣列A, 陣列A開始比對的位置, 陣列B, 陣列B開始比對的位置, 比對的個數)
如果陣列A比較大則回傳1,如果陣列B比較大則回傳-1,如果相同的話則回傳0,例外情形回傳-2
說明:

比對執行的方式如下:

  • 先比較 陣列A[比對開始位置]陣列B[比對開始位置] 這兩個數值,如果陣列A的值比較大的話則回傳1,如果陣列B的值比較大的話則回傳-1,否則繼續比對兩個陣列的下一個數值(陣列A[比對開始位置+1]陣列B[比對開始位置+1])。
  • 同樣的,如果陣列A的值比較大的話則回傳1,如果陣列B的值比較大的話則回傳-1,否則繼續比對下去直到比對個數超過為止。
  • 如果比到最後都是一樣的話,則回傳0。
  • 如果比對的範圍超過Array的大小的話,則回傳-2。

舉例:

Array: arrA[5](0); // 宣告arrA是一個有5個元素的陣列,初始值都是0
Array: arrB[5](0); // 宣告arrB是一個有5個元素的陣列,初始值都是0
Array: arrC[5](0); // 宣告arrC是一個有5個元素的陣列,初始值都是0


arrA[1] = 0;  arrA[2] = 10; arrA[3] = 20; arrA[4] = 30; arrA[5] = 40;
arrB[1] = 0;  arrB[2] = 0;  arrB[3] = 10; arrB[4] = 20; arrB[5] = 30;
arrC[1] = 0;  arrC[2] = 20; arrC[3] = 30; arrC[4] = 40; arrC[5] = 50;


Value1 = Array_Compare(arrA, 1, arrB, 1, 3); // 範例1: Value1 = 1
Value2 = Array_Compare(arrA, 1, arrC, 1, 3); // 範例2: Value2 = -1
Value3 = Array_Compare(arrA, 1, arrB, 2, 3); // 範例3: Value3 = 0
Value4 = Array_Compare(arrA, 1, arrB, 1, 8); // 範例4: Value4 = -2

第一個範例比對arrA的第一個位置開始的三個數字跟arrB的第一個位置開始的三個數字,也就是比對 (arrA[1], arrA[2], arrA[3])這三個數字與 (arrB[1], arrB[2], arrB[3])這三個數字的差異。其中 arrA的三個數字分別為 (0, 10, 20), 而 arrB的三個數字分別為 (0, 0, 10)。比對時兩邊的第一個數字是相同的(都是0),而第二個數字 arrA的10 > arrB的0,所以回傳1。

第二個範例比對arrA的第一個位置開始的三個數字跟arrC的第一個位置開始的三個數字,也就是比對 (arrA[1], arrA[2], arrA[3])這三個數字與 (arrC[1], arrC[2], arrC[3])這三個數字的差異。其中 arrA的三個數字分別為 (0, 10, 20), 而 arrC的三個數字分別為 (0, 20, 30)。比對時兩邊的第一個數字是相同的(都是0),而第二個數字 arrA的10 < arrC的20,所以回傳-1。

第三個範例比對arrA的第一個位置開始的三個數字跟arrB的第二個位置開始的三個數字,也就是比對 (arrA[1], arrA[2], arrA[3])這三個數字與 (arrB[2], arrB[3], arrB[4])這三個數字的差異。其中 arrA的三個數字分別為 (0, 10, 20), 而 arrB的三個數字分別為 (0, 10, 20)。由於這三個數字都一樣,所以回傳0。

第四個範例內,從第一個位置開始比,總共比8個,可是陣列內只有5個元素,超過範圍,於是回傳-2。