arrays - 为for循环添加2个条件
问题描述
我正在使用可能是不同长度的数组。我想比较元素。所以我需要检查数组的最小长度,将其存储在 var 中,然后必须在 for 循环中使用该 var。
为了避免这种情况,我想在 for 循环中检查这个长度,比如
for i:=0; (i<len(arr1)&&(i<len(arr2)) ; i++{
if arr1[i] < arr2[i] {}
}
或者
for i:=0; true == (i<len(arr1)&&(i<len(arr2)) ; i++{
if arr1[i] < arr2[i] {}
}
解决方案
您可以预先计算哪个切片更长
包主
import (
"fmt"
)
func longest(l1 []int, l2 []int) int {
if len(l1) > len(l2) {
return len(l2)
}
return len(l1)
}
func main() {
a := []int{1, 2, 3, 46, 7, 8, 9, 12, 13, 99, 87, 34}
b := []int{3, 4, 5, 6, 7, 8}
maxlen := longest(a, b)
for i := 0; i < maxlen; i++ {
if a[i] > b[i] {
fmt.Printf("%d yes", i)
}
}
}