不太理解6-8
为什么代码中根本没有hobby 只有hobbys ,可是在foreach中却出现了hobby?
为什么代码中根本没有hobby 只有hobbys ,可是在foreach中却出现了hobby?
2015-03-25
其实不一定非要是hobby和hobbys。在这里,hobby是另一个变量,hobbys只是一个数组名。换一种语法格式或许会更能便于理解。
for( type var : ArrayName)
statement block;
在这里,type是变量var的类型;而变量var用于接受每次遍历数组时,数组中的元素;ArrayName为数组名。foreach是从头到尾的依次读取数组中的元素。在每一次循环迭代时,都要检索数组中的下一个元素并将其保存在变量var中。也就是说每一次遍历循环,var都自动获得一个等于ArrayName数组中的下一个元素的值。循环不断重复,直到遍历到数组的全部元素为止。由于变量var是用来存放数组ArrayName的元素的,所以变量var的类型type就应该与数组中的元素类型一致或兼容。
可以考虑下,foreach循环会一直迭代,直到检查完数组中的全部元素,可是在如何使用foreach时候,提前终止循环?
...
可以用break语句提前终止foreach循环。
例如:只求和数组中的前五个元素的和:
...
int [] nums = {2,3,1,4,5,6,7,8,9};
int sum = 0;
for ( int x : nums)
{
System.out.println(“当前数组元素的值为:”+x);
int i = 0;
i++
sum += x;
if( i == 5)
break;
}
再思考一下,foreach中的变量var是用来存放数组ArrayName的元素的,那么,在循环体内对变量var赋值,能否影响数组的值呢?可以自己写代码验证。
举报