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 迴圈的組合。在第三個示例中,我們使用了遞迴的概念,其中我們不斷呼叫函式本身直到執行完成。

更新於: 2023年2月16日

3K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告