Go 語言程式讀取和列印二維陣列
什麼是二維陣列?
二維陣列是由按行和列排列的資料組成的集合。在 Go 中,我們可以使用 for 迴圈來迭代和列印二維陣列的元素。
下面是一個示例:
0 1 2 4 5 6 8 9 10
方法 1:使用 For 迴圈
在此方法中,我們將使用 Go 語言中的 for 迴圈遍歷陣列並捕獲每個元素,然後列印該元素,直到遍歷完整個陣列。
演算法
步驟 1 − 匯入 fmt 包。
步驟 2 − 現在我們需要開始 main() 函式。
步驟 3 − 然後建立一個名為 matrix 的二維矩陣,並將資料儲存到其中。
步驟 4 − 現在,使用兩個 for 迴圈來迭代陣列元素。使用第一個 for 迴圈將獲取多維陣列的行,而第二個 for 迴圈將提供二維陣列的列。
步驟 5 − 獲取特定矩陣元素後,在螢幕上列印該元素,並繼續下一個元素,直到迴圈完成。
示例
在此示例中,我們將使用 for 迴圈透過 for 迴圈讀取和列印二維陣列的元素。
package main
import "fmt"
func main() {
// initializing variables
var array [][]int
var row int
var col int
array = make([][]int, row)
for i := range array {
array[i] = make([]int, col)
}
// assigning data to matrix
array = [][]int{
{0, 1, 2},
{4, 5, 6},
{8, 9, 10},
}
// printing the matrix elements
fmt.Println("The given matrix is:")
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
fmt.Print(array[i][j], "\t")
}
fmt.Println()
}
fmt.Println()
}
輸出
The given matrix is: 0 1 2 4 5 6 8 9 10
方法 2:使用內建函式
在此方法中,我們將使用第一個示例中的 range 函式和第二個示例中的陣列切片。
演算法
步驟 1 − 匯入 fmt 包。
步驟 2 − 現在我們需要開始 main() 函式。
步驟 3 − 然後我們建立一個名為 matrix 的矩陣,併為其分配資料。
步驟 4 − 現在使用 range 函式迭代矩陣元素,並在螢幕上列印矩陣的每個元素。
示例 1
在此示例中,我們將使用 Go 程式設計的 range 函式結合 range 函式和 for 迴圈來獲取二維陣列的元素。
package main
import "fmt"
func main() {
// initializing variables
var array [][]int
var row int
var col int
array = make([][]int, row)
for i := range array {
array[i] = make([]int, col)
}
// assigning data to matrix
array = [][]int{
{10, 13, 21},
{47, 54, 63},
{82, 91, 0},
}
// printing the matrix elements
fmt.Println("The required array is:")
for _, row := range array {
for _, val := range row {
fmt.Print(val, "\t")
}
fmt.Println()
}
}
輸出
The required array is: 10 13 21 47 54 63 82 91 0
示例 2
在此程式中,我們將使用 Go 語言的陣列切片屬性來列印二維陣列。
package main
import "fmt"
func main() {
// initializing variables
var array [][]int
var row int
var col int
array = make([][]int, row)
for i := range array {
array[i] = make([]int, col)
}
// assigning data to matrix
array = [][]int{
{10, 13, 21},
{47, 54, 63},
{82, 91, 0},
}
// printing the matrix elements
fmt.Println("The required array is:")
for _, j := range array {
fmt.Print(j, "\t")
fmt.Println()
}
fmt.Println()
}
輸出
The required array is: [10 13 21] [47 54 63] [82 91 0]
方法 3:使用遞迴
在此方法中,我們將使用遞迴的概念在螢幕上讀取和列印二維陣列的元素。
演算法
步驟 1 − 首先,我們需要匯入 fmt 包。
步驟 2 − 現在,建立一個名為 printMatrix() 的遞迴函式,該函式接受多維陣列作為其引數以及應列印的當前行索引。
步驟 3 − 現在,如果當前行變數等於多維陣列的長度,則程式將結束。
步驟 4 − 使用 for 迴圈迭代陣列並列印當前元素。列印完當前行後,函式透過遞增行變數再次呼叫自身。
步驟 5 − 透過這種方式,陣列的所有三行都列印在螢幕上。
步驟 6 − 現在,開始 main() 函式。在 main() 中初始化一個二維陣列併為其賦值。
步驟 7 − 現在,透過將矩陣以及當前行位置作為引數傳遞給函式來呼叫 printMatrix() 函式。
示例
以下程式碼使用遞迴方法讀取和列印二維陣列
package main
import "fmt"
func printMatrix(matrix [][]int, row int) {
if row == len(matrix) {
return
}
for _, element := range matrix[row] {
fmt.Print(element, "\t")
}
fmt.Println()
printMatrix(matrix, row+1)
}
func main() {
// initializing variables
var array [][]int
var row int
var col int
array = make([][]int, row)
for i := range array {
array[i] = make([]int, col)
}
// assigning data to matrix
array = [][]int{
{12, 13, 21},
{47, 54, 23},
{28, 19, 61},
}
fmt.Println("The given matrix is:")
printMatrix(array, 0)
}
輸出
The given matrix is: 12 13 21 47 54 23 28 19 61
結論
我們已成功編譯並執行了一個 Go 語言程式來讀取和列印多維陣列的元素。在第一個示例中,我們僅使用了 for 迴圈,而在第二個示例中,我們使用了 range 函式和 for 迴圈的組合。在第三個示例中,我們使用了遞迴的概念,其中我們不斷呼叫函式本身直到執行完成。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP