首页 > 解决方案 > 为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] {}
}

标签: arraysfor-loopgo

解决方案


您可以预先计算哪个切片更长

包主

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)
        }
    }

}

https://play.golang.org/p/SXUwKrQrEo2


推荐阅读