【问题标题】:ArrayIndexOutOfBounds-Pairs of array [closed]ArrayIndexOutOfBounds-数组对[关闭]
【发布时间】:2019-08-08 16:55:31
【问题描述】:

我是 Java 新手。我想了解如何解决 ArrayIndexOutOfBounds。在 C 语言中我们没有遇到此异常。为什么在 java 中会发生这种情况。

我遇到过某些解决方案,例如 try catch 块。但是,我不满意。我正在使用 netbeans IDE。

public class Logpairs 
{
    static int arr1[]={1,2,3,4,5};

     static void pairs(int arr[])
     {
        for(int i=0;i<arr.length;++i)
        {
          for(int j=0;j<arr.length;++i)
            {
               System.out.println("{"+arr[i]+","+arr[j]+"}");
            }
        }
     }

    public static void main(String[] args)
    {

       pairs(arr1);
    }
}

实际输出应该是所有数组对。示例:{1,1} {1,2} {1,3} {1,4} {1,5} {2,1}..... {5,5} 但是,我的输出只有 {1,1} {2,1} {3,1} {4,1}{5,1} 线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:5

【问题讨论】:

  • 因为你做了两次 ++i
  • 调试是你的朋友。正如 Zachary 提到的,这一行是错误的:“for(int j=0;j

标签: java arrays


【解决方案1】:

试试这个,增加 j 而不是 i 两次。

public class Logpairs 
{
    static int arr1[]={1,2,3,4,5};

     static void pairs(int arr[])
     {
        for(int i=0;i<arr.length;++i)
        {
          for(int j=0;j<arr.length;++j)
            {
               System.out.println("{"+arr[i]+","+arr[j]+"}");
            }
        }
     }
 }

【讨论】:

  • 这很有帮助。谢谢。如果可能的话,您能否告诉我为什么在 Java 中出现此异常,而在 C 编程语言中却没有?
  • @Preena Darshini C 没有定义当您越界访问数组索引时会发生什么错误,例如,它可能会产生分段错误。你仍然没有允许访问越界元素,你会得到意想不到的行为。
  • 感谢您给我一个清晰的思路。
猜你喜欢
  • 2015-02-17
  • 2013-05-28
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多