关于eclipse:方法中的数组 – JAVA

Array in method - JAVA

本问题已经有最佳答案,请猛点这里访问。

我在其中一个教程中看到了这段代码。
它没有任何错误,但我只是不理解代码。
有人可以指导我吗?

1
2
3
4
5
6
7
8
9
10
11
12
int trying[] = {3,4,5,6,7};
change (trying);

for(int y: trying) {
    System.out.println(y);
    }
}
public static void change (int x[]) {
    for ( int counter = 0; counter < x.length ; counter++){
        x[counter] += 5;
     }
}

能为我解释这部分吗?

1
2
3
for(int y: trying) {
    System.out.println(y);
 }

我不明白这行代码:

for (int y : trying)


Java for-Each循环语法:

1
for(data_type variable : array | collection){}

优点:

  • 它使代码更具可读性。

在你的例子中

1
2
3
 for(int y: trying){
     System.out.println(y);
 }

只是意味着int y会迭代尝试中的所有值。喜欢,

1
2
3
4
for(int i=0;i < trying.length;i++){
      int y = trying[i];
      System.out.println(y);
}

采集:

1
2
3
4
5
6
 List<String> someList = new ArrayList<String>();
    // add"monkey","donkey","skeleton key" to someList

    for (String item : someList) {
        System.out.println(item);
    }

与...一样:

1
2
3
4
 for (Iterator<String> itr = someList.iterator(); itr.hasNext(); ) {
       String item = itr.next();
       System.out.println(item);
    }

正如本文前面所讨论的那样


好的,所以尝试[]是一个整数数组。函数change()将try []作为输入,将+5作为try []中的每个整数。你问的for循环只是语法糖,可以缩短代码。

查看doc链接并尝试在eclipse或某些IDE中运行它。


for(int y: trying)是java中foreach循环的实现。这可以理解为:

1
2
3
4
for(int i = 0; i< trying.length; i ++){
    int y = trying[i];
    System.out.println(y);
}

Java文档说明

The for-each construct is also applicable to arrays, where it hides
the index variable rather than the iterator.


它是for-each循环,循环遍历数组的便捷方式,Collection,或者更通常是任何Iterable

例如,循环遍历整数数组int[] trying,您可以执行以下操作:

1
2
3
4
for(int i=0; i<trying.length; i++) {
  int y = trying[i];
  // stuff with y
}

或使用while,迭代器...但这是一堆人物,我们很懒,手指累了。所以这是进行这种频繁操作的较短方式:

1
2
3
for( int y : trying ) {
  // stuff with y
}

在引擎盖后面,为任何Iterable缓存Iterator的扩展,或者数组的索引,这里是JLS规范。


它说,
在尝试中为每个对象运行{...}中的代码。

数据类型是int,因为try是一个int数组。

"y"是一个变量,它保存一个对象(一次一个)。

例如,
当第一次循环时,y从数组中获取第一个值(3)并在{和}之间运行代码。然后,y从数组中获取第二个值(4)并再次运行相同的代码....依此类推。

在这种情况下,它将为尝试中的每个对象打印y值。

1
2
3
4
for(int y: trying)
{
    System.out.println(y);
}

for循环中提到的数据类型必须与数组类型相同。
例如,

1
2
for (String s : allLines) { ... }
for (Member m : allMembers) { ... }

这称为foreach循环。所以用语言说:

对于数组"尝试"中的每个项目"y" - 做一些事情(这里:打印它)。

如果您不关心循环的频率,只是想要解决数组/集合中的每个项目,这是非常方便的。

或者,您可以在更改方法中使用"正常"for循环。


我希望我能给你想要或需要的信息。

Int trying[]是整数数组。

使用for循环,您可以循环遍历trying[]数组,每次循环时都会向控制台发送消息。

然后你有第二个循环

因此,如果你的int计数器小于数组x []的长度,那么你继续通过循环盘旋。一旦计数器达到与x []相同的长度或值,则循环停止。

1
2
3
4
for(int y: trying) {
    System.out.println(y);
    }
}

所以上面的例子真的很难,循环将继续到我尝试更大或相同的程度。

有了这些信息,你可以自己找出最后一个循环:

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html