Golang程序 读取和打印二维数组

Golang程序 读取和打印二维数组

什么是二维数组

二维数组是一个按行和列排列的数据集合。在go中,我们可以使用for循环来迭代和打印二维数组的元素。

下面是一个同样的例子–

0  1  2
4  5  6
8  9  10

方法1:使用For循环

在这个方法中,我们将使用golang中的for循环来迭代数组,并捕获每个元素,然后我们将打印该元素,除非整个数组被迭代。

算法

  • 第1步– 导入fmt包。

  • 第2步 – 现在我们需要启动main()函数。

  • 第3步 – 然后创建一个二维矩阵,命名为矩阵,并将数据存储在其中。

  • 第4步 – 现在,使用两个for循环来迭代数组元素。使用第一个for循环将得到多维数组的行,而第二个for循环给我们二维数组的列。

  • 第5步 – 一旦得到一个特定的矩阵元素,在屏幕上打印该元素,然后继续下一个元素,直到循环完成。

例子

在这个例子中,我们将使用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:使用内部函数

在这个方法中,我们将在第一个例子中使用范围函数,在第二个例子中使用阵列切片。

算法

  • 第1步– 导入fmt包。

  • 第2步 – 现在我们需要启动main()函数。

  • 第3步 – 然后我们要创建一个矩阵,命名为matrix,并将数据分配给它。

  • 第4 步 – 现在使用range函数来迭代矩阵元素,并在屏幕上打印矩阵的每个元素。

例子1

在这个例子中,我们将使用go Programming的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循环的组合。在第三个例子中,我们使用了递归的概念,我们从自身开始调用函数,直到执行完毕。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程