持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第28天,点击查看活动详情
一、实际案例
1.1 for循环放置数组元素
创建一个byte类型的26个元素的数组,分别放置'A-'Z'。使用for循环访问所有元素并打印出来。提示:字符数据运算'A'+1-> 'B'
package main
import (
"fmt"
)
func main() {
// 创建一个byte类型的26个元素的数组,分别放置'A-'Z'。
// 使用for循环访问所有元素并打印出来。提示:字符数据运算'A'+1-> 'B'
// 定义数组
barray := [26]byte{}
for i := 0; i < 26; i++ {
barray[i] = 'A' + byte(i)
}
for i := 0; i < 26; i++ {
// ABCDEFGHIJKLMNOPQRSTUVWXYZ
fmt.Printf("%c", barray[i])
}
}
1.2 输出数组最大值及其下标
package main
import "fmt"
func main() {
// 求出一个数组最大值,并且输出其下标
// 声明数组
intArr := [5]int{84, 26, 76, 194, 45}
// 定义两个中间变量
var index, value int
for i, v := range intArr {
if v > value {
index = i
value = v
}
}
// 3 194
fmt.Printf("%d %d", index, value)
}
1.3 求数组的和以及平均值(for-range)
package main
import "fmt"
func main() {
// 求数组的和 以及平均值 使用for-range
intArr := [5]int{11, 33, 22, 44, 89}
// 定义变量
var sum int
// var average float64
for _, v := range intArr {
sum += v
}
fmt.Printf("intArr数组的和 = %v, 平均值 = %v\n", sum, float64(sum)/float64(len(intArr)))
}
二、数组反转
随机生成五个数,并将其反转打印
- 使用 rand.Intn() 函数生成随机数
- 使用 time.Now().UnixNano() 设置种子
- 将反转值给到新的数组
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
// 随机生成五个数,并将其反转打印
// 1. 使用 rand.Intn() 函数生成随机数
// 2. 使用 time.Now().UnixNano() 设置种子
// 声明数组
intArr := [5]int{}
// 设置Seed
rand.Seed(time.Now().UnixNano())
for i := 0; i < len(intArr); i++ {
// 随机生成一个 100 以内的数
intArr[i] = rand.Intn(100)
}
// intArr 数组 = [10 89 16 41 38]
fmt.Println("intArr 数组 = ", intArr)
// 声明新数组
intArr2 := [5]int{}
// 将其反转
for i := len(intArr) - 1; i >= 0; i-- {
// 38 41 16 89 10
// fmt.Printf("%v ", intArr[i])
intArr2[len(intArr)-1-i] = intArr[i]
}
// intArr2 = [38 41 16 89 10]
fmt.Println("intArr2 = ", intArr2)
}