За то, что петля не делает то, что я хочу
Я пытаюсь сравнить два списка друг с другом. Выполните цикл по каждому индексу в обоих списках и сравните значения друг с другом.
1. Одна позиция не совпадает: если loop1[я] != loop2[Дж] и i ==j, то значение у меня в loop1 не соответствует стоимости в loop2.
2. совпадение, но не в позиции: loop1[i]== loop2[j] и i!=j, значение является общим в обоих циклах, но находится в неправильном положении.
3. Если первое происходит более одного раза, то несколько значений не совпадают.
Проблема в том, что когда я тестирую его, я получаю неправильный вывод, например, цикл 1 = 1,2,3,4,5,6,7 и цикл 2 = 1,2,3,5,5,7. Он печатает первый результат. Правильный
проблема вот в чем:
петля1 = 1, 2, 3, 4, 5, 6, 7
loop2 = 1, 2, 4, 3, 5, 6, 7, должен печатать второй результат, но печатает первым результатом вместо.
Напр.
selectedindices = List.of(1, 2, 3, 4, 5, 6) indicesofpositionguessed = List.of(1, 2, 3, 5, 5, 6 when you compare the two, its supposed to be: "User guess at position 3 is correct but at wrong position" but instead is "User guess at position 3 did not match selected"
Кроме того, по какой-то причине метод возвращает строку, но не распознает возвращаемые строки в цикле for, но заставляет меня поместить оператор return вне цикла for. Почему? Есть ли какой-нибудь способ обойти это?
Что я уже пробовал:
public String guessPosition(List<Integer> indicesOfPositionGuessed) { int count = 0; for (int i = 0; i < indicesOfPositionGuessed.size(); i++) { Integer item1 = indicesOfPositionGuessed.get(i); for (int j = 0; j < selectedIndicies.size(); j++) { Integer item2 = selectedIndicies.get(j); if (i != j) { if (item1.equals(item2) == true) { return "User guess at position " + i + " is correct but at wrong position"; } } if (i == j) { if (item1.equals(item2) == false) { count++; return "User guess at position " + i + " did not match selected"; } } } } if(count > 0) return "User guess did not match in two positions"; return null; }
Patrice T
Добавьте списки, которые дают неверный результат.
Member 13978326
я не понимаю что ты имеешь в виду
Patrice T
Покажите нам входные данные, которые дают неправильные результаты.
Измените свой код, чтобы мы могли запустить его и получить неверный результат.
Member 13978326
selectedindices =
List.of(1, 2, 3, 4, 5, 6)
indicesofpositionguessed =
List.of(1, 2, 3, 5, 5, 6
когда вы сравниваете их, это должно быть: "пользователь угадывает в позиции 3 правильно, но в неправильной позиции", но вместо этого "пользователь угадывает в позиции 3 не соответствует выбранному"
Patrice T
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.