Java 如何修复ArrayIndexOutOfBoundsException(控制台)

Java 如何修复ArrayIndexOutOfBoundsException(控制台),java,arrays,Java,Arrays,不知道如何防止6点后的碰撞。我想说的是,该职位不适合担任。我试过了 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7 at com.PenguinGaming.Player.User(Player.java:47) at com.PenguinGaming.Game.main(Game.java:18) 我只在GUI中处理过一次这个问题,那是在跟踪一个视频,我们是如何处理的,一旦对象到达,它就会被销毁。

不知道如何防止6点后的碰撞。我想说的是,该职位不适合担任。我试过了

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at com.PenguinGaming.Player.User(Player.java:47)
at com.PenguinGaming.Game.main(Game.java:18)
我只在GUI中处理过一次这个问题,那是在跟踪一个视频,我们是如何处理的,一旦对象到达,它就会被销毁。在这种情况下,我不想破坏它,但是,说它不能再进一步了。我认为问题出在我的循环中,它添加了一个,然后检查,这样它就会超出并崩溃。为了防止这种情况,我可能需要检查之前,但不知道如何

Player.java
您应该在这一行之前检查
playerY

package com.PenguinGaming;

import java.util.Scanner;

public class Game{

public static void main(String[] args){

    Player player = new Player();
    Map map = new Map();

    boolean running = true;

    //Print starting location
    System.out.println(map.MapLayout()[4][4]);

    while(running){
    player.User();
    }

}
}
即:

System.out.println(map.MapLayout()[playerX][playerY+1]);

谢谢,基本上解决了。只需更改playerY>=6,然后不减去,因为如果是,它需要保持在河流的当前位置。
package com.PenguinGaming;

import java.util.Scanner;

public class Game{

public static void main(String[] args){

    Player player = new Player();
    Map map = new Map();

    boolean running = true;

    //Print starting location
    System.out.println(map.MapLayout()[4][4]);

    while(running){
    player.User();
    }

}
}
System.out.println(map.MapLayout()[playerX][playerY+1]);
    if(input.equals(commands.commandlist()[1])){
        if(playerY > 6){
            playerY -=1;
            System.out.println("You can not move in that direction");
        } else {
            //Go north
            System.out.println(map.MapLayout()[playerX][playerY+1]);
            playerY += 1;
        }
    }