gpt4 book ai didi

java - 如何在二维数组上使用 foreach 循环来表达 for 循环?

转载 作者:行者123 更新时间:2023-12-02 11:15:23 25 4
gpt4 key购买 nike

public static boolean doit(int[][] a, int b){
for(int i=0; i<a.length; i++){
for (int j = 0; j < a[i].length; j++)
{
if(a[i][j] ==b) {
return true;
}
}
}
return false;
}

所以基本上我想使用 ForEach 循环来检查数组是否包含 int b,但我不确定如何使用它。

public static boolean doitTwo(int[][] a, int b){
for(c :a){
for ( d:a){
if(a[c][d] ==b) {
return true;
}
}
}

}

最佳答案

差不多了,但是当内部循环应该使用 c 时,您在两个循环中迭代 a 。另外,当您像这样迭代值而不是索引时,您不需要索引到数组(就像您对 a[c][d] 所做的那样),因为您手中已经有了数值。

public static boolean doitTwo(int[][] a, int b){
for(int[] c : a){
for (int d : c){
if(d ==b) {
return true;
}

}

}

我还在 for 循环中添加了类型,这并不是绝对必要的,因为它们可以推断出来,但我更喜欢在 Java 中显式显示。

第一个 for 循环 c : a 接受 a 并迭代其值。由于它是一个 2D 数组,因此它的每个元素都是一个 1D 数组!然后,您迭代该一维数组,并且该一维数组的每个值都是 int。

示例伪代码:

# Original 2D array which is an array, containing arrays of ints. i.e. int[][]
x = [[1, 2, 3], [4, 5, 6];

for (a : x) {
# at this point on the first iteration, a = [1,2,3]. i.e. int[]
for (b : a) {
# at this point on the first iteration, b = 1. i.e. int
}
}

关于java - 如何在二维数组上使用 foreach 循环来表达 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50316652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com