为什么这部分代码引发异常? [处于保留状态]

问题描述 投票:-3回答:1

我是Java编程的新手,我似乎找不到为什么这部分代码引发异常的原因:

线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:3在MasterMind2.onlyColorMatches(MasterMind2.java:98)在MasterMind2.main(MasterMind2.java:13)

我认为是在此函数内部发生的事情:

  public static int onlyColorMatches ( int[] puzzle, int[] guess ) {

    int equivalent = 0;
    for ( int i = 0; i < puzzle.length; i++ ) {
      for ( int j = 0; j < puzzle.length; i++ ) {
        if ( puzzle[i] == guess[j] && ( j != i ) )
          equivalent++;
      }
    }

    return equivalent;

  }

[如果有人能帮助我,我将非常感谢!很抱歉,如果未正确提出问题。

java arrays exception indexoutofboundsexception
1个回答
0
投票

您正在遍历puzzle.length的值,然后尝试使用puzzle的长度访问猜测的索引。

所以-当拼图和猜想的长度不同时会发生什么?说Puzzle.length = 10,guess.length =5。对于索引5、6、7、8、9,您正在尝试访问不存在的猜测索引。

© www.soinside.com 2019 - 2024. All rights reserved.