下面的图片是我分别用foreach语句与for语句对数组遍历的输出测试,但结果不一样,myeclipse的输出提示好像代码中第十二行有问题,我没找出来,希望大家帮忙看看,顺便问下for语句与foreach语句使用有什么区别、使用时有没有什么条件限制?本人新学Java,请各位多多指教!!!
是你搞混淆了吧,foreach的i,是循环体的当前值,不是数组的下标
for和foreach,最明显的一个区别,就是for可以获取到下标,foreach获取不了
...越界了大兄弟,foreach循环,获取到的是数组元素,方法一遍历到最后的时候,最后一个元素为10,num[10]当然越界了,方法一你应该用num[i-1],另外你这算法什么鬼,哪有这么写的,你用了,foreach就不要用下标访问元素,虽然你也可以这么做
方法一求和这么写就可以了
int jishu = 0;
for(int i : num){
if(jishu == num.length-1){
System.out.println(i+"=");
} else {
System.out.println(i+"+");
}
jishu++;
sum+=i;
}
没用编译器,手敲的,可能有问题,但意思就是这么个意思
楼上说的对,foreach 循环的是值 ,不是下标,非要获取下表就不要用foreach,很多说这两个性能上有差异云云,,,但是实际开发中你list要不是特别大,没必要纠结用哪个,差不多了多少,个人习惯就行了
两种循环方式区别其实不大,在循环次数很多时,foreach效率相对高点,可以自行测试对比下
效率差别,前端for好一点,后台foreach好一点
在固定长度或长度不需要计算的时候for循环效率高于foreach.
在不确定长度,或计算长度有性能损耗的时候,用foreach比较方便.
并且foreach的时候会锁定集合中的对象.期间不能修改.