Member 13817762 Ответов: 1

Ошибка Checkstyle : управляющая переменная 'j' изменена.


Как я могу сделать свой код лучше?

Что я уже пробовал:

<pre>public static int moderatorChoice(int guess, String[] doors) {
    int moderator = 0;
    int i = 1;

    if ((doors[guess - 1].equals("Z"))) {
      for (int j = 0; j < doors.length; j++) {
        if (doors[guess - 1] != doors[j]) {
          while (!(doors[j].equals("A"))) {
            j++;
            moderator = j;
            Terminal.printLine(moderator );
            return j;
          }
        }
      }

      return moderator;

    }

1 Ответов

Рейтинг:
1

OriginalGriff

Вы действительно не должны изменять j внутри вашего while петля; это управляющая переменная для внешнего for петля:

for (int j = 0; j < doors.length; j++) {
  if (...) {
    while (...) {
      j++;
      ...
      return j;
    }
  }
А твой while цикл будет выполняться только один раз. Вместо этого попробуйте это:
for (int j = 0; j < doors.length; j++) {
  if (...) {
    if (...) {
      ...
      return j + 1;
    }
  }
Или лучше объединить эти два условия в одно if