Java: ArrayIndexOutOfBoundsException: 4? - PullRequest
       2

Java: ArrayIndexOutOfBoundsException: 4?

1 голос
/ 16 апреля 2020

Я понимаю причину этого исключения и проверял свой код несколько раз. Тем не менее, я думаю, что мой индекс находится в пределах индекса. Может кто-нибудь помочь мне здесь? Примечание: предположим, что условие l oop будет выполнено. То есть число не более 3.

 int suit;
 int num = 0;
 String[] suitList = {"c", "d", "h", "s"};
 for (int i = 0; i < 5; i++){
    while (suitList[num].equals(testHand[i].substring(0,1)) == false){
        num++;
    }            
    suit = num + 1;
 }   

1 Ответ

1 голос
/ 16 апреля 2020

Вы должны сбросить num на 0 для каждой итерации для l oop:

int suit;
String[] suitList = {"c", "d", "h", "s"};
for (int i = 0; i < 5; i++){
   int num = 0;
   while (suitList[num].equals(testHand[i].substring(0,1)) == false){
       num++;
   }            
   suit = num + 1;
}

В противном случае оно может превысить 3 после первой итерации для l oop.

Кстати, ваше состояние может быть улучшено следующим образом:

int suit;
String[] suitList = {"c", "d", "h", "s"};
for (int i = 0; i < 5; i++){
   int num = 0;
   while (!testHand[i].startsWith(suitList[num]))) {
       num++;
   }            
   suit = num + 1;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...