Можете ли вы пропустить части массива при использовании цикла for-each? - PullRequest
0 голосов
/ 03 апреля 2019

Мне сказали возвращать только строки заданной длины из массива.Я могу сделать это легко с помощью обычного цикла for.но я недавно обнаружил петли for-each и пытаюсь научиться их использовать.эта проблема кажется выполнимой, но я могу ошибаться.

Есть код, над которым я работаю:

public List wordsWithoutList(String[] words, int len) {
    String[] temp = new String[0];
    for (String i : words) {
        if (i.length() != len) {
            temp = new String[temp.length + 1];
            temp[i] = words[i];
        }
    }
    return temp;
}

Ответы [ 3 ]

0 голосов
/ 03 апреля 2019

Пара вещей.
Большая разница между циклом for и циклом foreach заключается в том, чтобы запутывать итератор в цикле, поэтому вам не нужно беспокоиться о требованиях.В противном случае они работают очень схожим образом.
Чтобы ответить на ваш вопрос - если вы добавите условный оператор для проверки того, что вам не нужно, вы можете «пропустить» ключевое слово continue.continue работает как break, но вместо прерывания цикла просто пропускает обработку для текущей итерации.
Вы можете прочитать подробнее здесь на Geeks for Geeks.

0 голосов
/ 03 апреля 2019

Чтобы вернуть строки массива заданной длины из массива, вы можете использовать простой оператор if:

public List<String> givenLength(String[] words, int len) {
    List<String> strings = new ArrayList<>();
    for (String word : words) {
        if (word.length() == len) {
            strings.add(word);
        }
    }
    return strings;
}
0 голосов
/ 03 апреля 2019

Это не точка для каждого цикла.Вы можете пропустить элементы (продолжить) или выйти из цикла (разрыв), но вы должны вызывать тело для каждого элемента.

Если вы хотите просто обработать указанный диапазон индексов, используйте «нормальный»для цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...