方法中的数组 - JAVA

时间:2015-06-16 13:25:32

标签: java eclipse

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

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

能为我解释这部分吗?

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

我不明白这行代码:

  

for(int y:trying)

7 个答案:

答案 0 :(得分:5)

Java for-Each循环语法:

for(data_type variable : array | collection){} 

<强>优势

  • 它使代码更具可读性。

在你的例子中

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

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

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

收集:

 List<String> someList = new ArrayList<String>();
    // add "monkey", "donkey", "skeleton key" to someList

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

同样如下:

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

正如前面在post

中所讨论的那样

答案 1 :(得分:2)

这是一个for-each循环,一种循环遍历数组的便捷方式,Collection,或者更通常是Iterable

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

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

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

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

在幕后,为任何Iterator缓存Iterable的扩展,或者数组的索引here是JLS规范。

答案 2 :(得分:2)

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

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

Java documentation

  

for-each构造也适用于隐藏的数组   索引变量而不是迭代器。

答案 3 :(得分:2)

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

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

答案 4 :(得分:1)

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

Int trying[]是一个整数数组。

使用for循环通过trying[]数组循环,每次循环播放时都会向控制台发送消息。

然后你有第二个循环

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

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

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

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

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

答案 5 :(得分:1)

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

对于每个项目&#34; y&#34;在数组&#34;尝试&#34; - 做点什么(这里:打印)。

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

或者你可以使用&#34;普通&#34;在更改方法中使用它时的for循环。

答案 6 :(得分:1)

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

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

“y”是一个变量,用于保存一个对象(一次一个)。

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

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

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

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

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