zgahgj 2017-08-22 07:31 采纳率: 61.1%
浏览 1518
已采纳

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

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

  • 写回答

7条回答 默认 最新

  • Bug开发攻城狮 2017-08-22 07:48
    关注

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 卖太妃糖的古尔丹 2017-08-22 07:39
    关注

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

    评论
  • 卖太妃糖的古尔丹 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;
        }
    

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

    评论
  • zhenglichenboy 2017-08-22 07:59
    关注

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

    评论
  • 瞭望塔 2017-08-22 08:40
    关注

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

    评论
  • portions 2017-08-22 09:54
    关注

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

    评论
  • Sanjay_yww 2017-08-22 10:02
    关注

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

    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 Qt 不小心删除了自带的类,该怎么办
  • ¥15 我需要在PC端 开两个抖店工作台客户端.(语言-java)
  • ¥15 有没有哪位厉害的人可以用C#可视化呀
  • ¥15 可以帮我看看代码哪里错了吗
  • ¥15 设计一个成绩管理系统
  • ¥15 PCL注册的选点等函数如何取消注册
  • ¥15 问一下各位,为什么我用蓝牙直接发送模拟输入的数据,接收端显示乱码呢,米思齐软件上usb串口显示正常的字符串呢?
  • ¥15 Python爬虫程序
  • ¥15 crypto 这种的应该怎么找flag?
  • ¥15 代码已写好,求帮我指出错误,有偿!