Go語言程式:檢查兩個陣列是否相等
在本教程中,我們將學習編寫一個 Go 語言程式來檢查兩個陣列是否相等。
使用等號運算子檢查兩個陣列是否相等
以下程式碼演示瞭如何使用等號運算子檢查兩個陣列是否相等。
演算法
步驟 1 − 首先,我們需要匯入 fmt 包,以便在螢幕上列印任何內容。
步驟 2 − 然後我們呼叫 main() 函式。
步驟 3 − 然後我們初始化三個整數型別的陣列 arr1、arr2 和 arr3,並將值儲存到它們中。
步驟 4 − 使用 fmt.Println() 函式在螢幕上列印這些陣列。
步驟 5 − 我們使用 if 條件同時比較任意兩個陣列,並檢查它們是否相同。
步驟 6 − 如果選擇的兩個陣列相同,則需要列印這兩個陣列相同的訊息;否則,列印給定陣列不相等。
步驟 7 − 透過逐一比較所有三個陣列來檢查。
示例
package main import "fmt" func main() { arr1 := [4]int{1, 2, 3, 4} fmt.Println("The first array Arr1 is:", arr1) arr2 := [4]int{5, 6, 7, 8} fmt.Println("The second array Arr2 is:", arr2) arr3 := [4]int{1, 2, 3, 4} fmt.Println("The third array Arr3 is:", arr3) fmt.Println() if arr1 == arr2 { fmt.Println("Arr1 and Arr2 have the similar elements") } else { fmt.Println("Arr1 and Arr2 do not have the similar elements") } if arr1 == arr3 { fmt.Println("Arr1 and Arr3 have the similar elements") } else { fmt.Println("Arr1 and Arr3 do not have the similar elements") } if arr2 != arr3 { fmt.Println("Arr2 and Arr3 do not have the similar elements") } else { fmt.Println("Arr2 and Arr3 have the similar elements") } }
輸出
The first array Arr1 is: [1 2 3 4] The second array Arr2 is: [5 6 7 8] The third array Arr3 is: [1 2 3 4] Arr1 and Arr2 do not have the similar elements Arr1 and Arr3 have the similar elements Arr2 and Arr3 do not have the similar elements
使用 if 條件檢查兩個陣列是否相等
上述程式有一個缺點:如果我們提供兩個具有相同元素但順序不同的陣列,它仍然將它們視為不相等。我們將在本程式中嘗試克服這個缺點。
演算法
步驟 1 − 匯入 fmt 包,以便在螢幕上列印任何內容。
步驟 2 − 呼叫 main() 函式。這是我們程式的起點。
步驟 3 − 初始化兩個名為 arr1 和 arr2 的整數型別陣列。
步驟 4 − 將值儲存到這兩個陣列中,並在螢幕上列印它們。
步驟 5 − 使用兩個 for 迴圈迭代這兩個陣列,並使用 if 條件比較兩個陣列當前元素的值。
步驟 6 − 如果值相同,則遞增計數變數並中斷迴圈。
步驟 7 − 重複此過程,直到檢查完整個陣列。
步驟 8 − 然後,使用另一個 if 條件,我們將陣列的長度與計數變數進行比較。
步驟 9 − 如果長度相同,則表示這兩個陣列相同,我們需要在螢幕上列印此訊息。否則,列印給定的兩個陣列不相同。
示例
package main import "fmt" func main() { arr1 := [4]int{1, 2, 3, 4} fmt.Println("The first array Arr1 is:", arr1) arr2 := [4]int{2, 3, 1, 4} fmt.Println("The second array Arr2 is:", arr2) fmt.Println() var count int = 0 for i := 0; i < len(arr1); i++ { for j := 0; j < len(arr2); j++ { if arr1[i] == arr2[j] { count++ break } } } if (count == len(arr1)) && (count == len(arr2)) { fmt.Println("The above two arrays given are same") } else { fmt.Println("The above two arrays are different") } }
輸出
The first array Arr1 is: [1 2 3 4] The second array Arr2 is: [2 3 1 4] The above two arrays given are same
使用外部函式檢查兩個陣列是否相等
現在讓我們看看如何使用使用者定義的函式檢查兩個陣列是否相等。
示例
package main import "fmt" // function to check if given arrays are equal or not func equalArray(a []int, b []int) bool { if len(a) != len(b) { return false } for i, v := range a { if v != b[i] { return false } } return true } func main() { arr1 := []int{1, 2, 3, 4} fmt.Println("The first array Arr1 is:", arr1) arr2 := []int{1, 2, 3, 4} fmt.Println("The second array Arr2 is:", arr2) result := equalArray(arr1, arr2) fmt.Println() if result == true { fmt.Println("The above two arrays are equal") } else { fmt.Println("The above two arrays are not equal") } }
輸出
The first array Arr1 is: [1 2 3 4] The second array Arr2 is: [1 2 3 4] The above two arrays are equal
結論
我們已經成功編譯並執行了一個 Go 語言程式,用於檢查兩個陣列是否相等,並附帶示例。