我在其中一个教程中看到了这段代码。 它没有任何错误,但我只是不理解代码。 有人可以指导我吗?
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)
答案 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);
}
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) { ... }