zgahgj
zgahgj
采纳率61.1%
2017-08-22 07:31 阅读 1.5k
已采纳

Java语言中用for语句或者foreach语句对数组遍历有何差异

下面的图片是我分别用foreach语句与for语句对数组遍历的输出测试,但结果不一样,myeclipse的输出提示好像代码中第十二行有问题,我没找出来,希望大家帮忙看看,顺便问下for语句与foreach语句使用有什么区别、使用时有没有什么条件限制?本人新学Java,请各位多多指教!!!
图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

7条回答 默认 最新

  • 已采纳
    zy_281870667 Bug开发攻城狮 2017-08-22 07:48

    是你搞混淆了吧,foreach的i,是循环体的当前值,不是数组的下标

    for和foreach,最明显的一个区别,就是for可以获取到下标,foreach获取不了

    点赞 7 评论 复制链接分享
  • qq_34658785 卖太妃糖的古尔丹 2017-08-22 07:45

    方法一求和这么写就可以了

        int jishu = 0;
      for(int i : num){
            if(jishu == num.length-1){
                System.out.println(i+"=");
            } else {
                System.out.println(i+"+");
            }
            jishu++;
            sum+=i;
        }
    

    没用编译器,手敲的,可能有问题,但意思就是这么个意思

    点赞 2 评论 复制链接分享
  • zhenglichenboy zhenglichenboy 2017-08-22 07:59

    楼上说的对,foreach 循环的是值 ,不是下标,非要获取下表就不要用foreach,很多说这两个性能上有差异云云,,,但是实际开发中你list要不是特别大,没必要纠结用哪个,差不多了多少,个人习惯就行了

    点赞 2 评论 复制链接分享
  • qq_34658785 卖太妃糖的古尔丹 2017-08-22 07:39

    ...越界了大兄弟,foreach循环,获取到的是数组元素,方法一遍历到最后的时候,最后一个元素为10,num[10]当然越界了,方法一你应该用num[i-1],另外你这算法什么鬼,哪有这么写的,你用了,foreach就不要用下标访问元素,虽然你也可以这么做

    点赞 评论 复制链接分享
  • congge_1993 瞭望塔 2017-08-22 08:40

    两种循环方式区别其实不大,在循环次数很多时,foreach效率相对高点,可以自行测试对比下

    点赞 评论 复制链接分享
  • qq_33632491 portions 2017-08-22 09:54

    效率差别,前端for好一点,后台foreach好一点

    点赞 评论 复制链接分享
  • Sanjay_yww Sanjay_yww 2017-08-22 10:02

    在固定长度或长度不需要计算的时候for循环效率高于foreach.
    在不确定长度,或计算长度有性能损耗的时候,用foreach比较方便.
    并且foreach的时候会锁定集合中的对象.期间不能修改.

    点赞 评论 复制链接分享

相关推荐