Golang 读取和打印二维数组的程序
什么是二维数组
二维数组是按行和列排列的数据集合。在Go语言中,我们可以使用for循环来迭代和打印二维数组的元素。
以下是一个示例:
0 1 2
4 5 6
8 9 10
方法1:使用for循环
在这个方法中,我们将使用golang中的for循环来遍历数组并捕捉每个元素,然后我们将打印该元素,除非整个数组已经迭代完。
步骤
- 步骤1 −导入fmt包。
-
步骤2 −现在我们需要开始main()函数。
-
步骤3 −然后创建一个名为matrix的二维矩阵并将数据存储到其中。
-
步骤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:使用内部函数
在这种方法中,我们将在第一个示例中使用range函数,在第二个示例中使用数组切片。
步骤
- 步骤1 - 导入fmt包。
-
步骤2 - 现在我们需要开始main()函数。
-
步骤3 - 然后我们创建一个名为matrix的矩阵并将数据分配给它。
-
步骤4 - 现在使用range函数遍历矩阵元素,并将矩阵的每个元素打印到屏幕上。
示例1
在这个示例中,我们将使用Go编程的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]
递归方法
在这个方法中,我们将使用递归的概念来在屏幕上读取和打印二维数组的元素。
步骤:
- 第一步: − 首先,我们需要导入fmt包。
-
第二步: − 现在,创建一个名为printMatrix()的递归函数,它接受多维数组作为参数,以及应该打印的当前行索引。
-
第三步: − 现在,如果当前行变量等于多维数组的长度,程序将结束。
-
第四步: − 使用for循环遍历数组并打印当前元素。一旦打印了当前行,该函数通过增加行变量再次调用自身。
-
第五步: − 这样就在屏幕上打印了数组的所有三行。
-
第六步: − 现在,开始main()函数。在main()函数内初始化一个二维数组并赋值。
-
第七步: − 现在,通过将矩阵和当前行位置作为参数传递给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循环的组合。在第三个示例中,我们使用了递归的概念,即在执行完成之前从函数调用自身。