Предвосхитил эту тему и просто поставил не i = j + 1, а i = 1(что как бы уже +1), но нет это не работает. Где логика? он все равно дальше strings.lenght цикл не пускает
Mezigore
26 уровень
Зачем в цикле +1?
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Mezigore
8 декабря 2021, 13:16
Спасибо, до меня дошло. Ошибка просто глупейшая. Цикл со вторым словом после выполнения сбрасывается, и если писать не (ячейка первого слова+1), то он начнет снова его отсчитывать от просто i = 1.
+1
hidden #598481
8 декабря 2021, 11:57полезный
Тебе нужно каждое слово сравнить со всеми последующими.
То есть начиная с и-плюс-первого, заканчивая последним.
Допустим, i = 2.
Со словами под индексами 0 и 1 ты их уже сравнивал на предыдущих итерациях внешнего цикла.
На этой итерации, тебе нужно сравнить его с оставшимися словами под индексами 3, 4 и 5.
Поэтому (j = i + 1; j < string.length; j++) при i = 2 даст тебе диапазон значений [3, 4, 5], и ты будешь сравнивать слово под индексом два по очереди со словами под индексами 3, 4 и 5.
Внешний цикл перебирает текущее слово, которое ты сравниваешь с остальными.
Внутренний цикл перебирает оставшиеся слова справа от текущего, с которыми ты и сравниваешь текущее слово.
+1
Василь trainee в Kindgeek
8 декабря 2021, 11:52
логика в том, что у вас j всегда меняется, а потом к j добавляется еще + 1 и все это присваивается в і. Так происходит потому что у вас вложенный цикл.
+1