Цикл for-each (или enhanced for) — удобный способ перебрать все элементы массива или коллекции без явного индекса. Синтаксис: for (Тип элемент : массив) { ... }. Нельзя изменить индекс, нельзя узнать текущий номер элемента (если он нужен — используйте обычный for). Зато код чище и меньше ошибок выхода за границы.
- Модуль 1: Первая программа и структура
- Модуль 2: Переменные и типы данных
- Объявление и инициализация переменных.
- Примитивы: целые числа (int, long, byte, short).
- Примитивы: дробные числа (double, float).
- Примитивы: логический тип (boolean).
- Примитивы: символьный тип (char).
- String — основы работы со строками.
- Приведение типов (Casting): расширение и сужение.
- Область видимости переменных (Scope).
- Модуль 3: Операторы
- Модуль 4: Управляющие конструкции
- Модуль 5: Массивы и Строки (Advanced)
- Создание и заполнение массива.
- Доступ к элементам по индексу.
- Свойство length и перебор массива.
- Цикл for-each для массивов.
- Многомерные массивы.
- Методы String: length, charAt, isEmpty.
- Манипуляции: substring, concat, replace.
- Сравнение строк: equals vs ==.
- Разделение строк (split) и trim.
- StringBuilder (изменяемые строки).
- Модуль 6: Методы
- Модуль 7: Классы и Объекты (ООП Часть 1)
- Модуль 8: Капсуляция и Модификаторы
- Модуль 9: Наследование и Полиморфизм (ООП Часть 2)
- Модуль 10: Обработка исключений
- Модуль 11: Коллекции и Дженерики
- Модуль 12: Функциональный стиль (Java 8+)
- Модуль 13: Полезные стандарты
1. Напиши for-each вместо обычного for
В этом задании вам нужно преобразовать обычный цикл for, который использует индекс для итерации по массиву, на улучшенный цикл for-each. Дан массив целых чисел numbers, и необходимо вычислить их сумму. Заполните пропуски в предоставленном фрагменте кода, чтобы цикл for-each корректно работал и выводил результат. Обратите внимание на синтаксис цикла for-each в Java, который упрощает перебор элементов без явного использования индекса.
int[] numbers = {1, 2, 3};
int sum = 0;
for (input1S : input2S) {
sum += input3S;
}
System.out.println(sum);2. Найди ошибку в for-each
В этом фрагменте кода на Java допущена ошибка, связанная с использованием цикла for-each для изменения элементов массива примитивов. Программа пытается удвоить каждый элемент массива, но из-за особенностей работы цикла for-each массив остаётся неизменным. Найдите и исправьте строку с ошибкой, чтобы массив действительно изменился, и программа вывела ожидаемый результат.
public class Main { public static void main(String[] args) { int[] numbers = {1, 2, 3, 4, 5}; for (int num : numbers) num = num * 2; for (int num : numbers) { System.out.print(num + " "); } }}3. Что выведет for-each?
Проанализируйте приведенный ниже код на Java. Внимательно проследите, как цикл for-each обрабатывает массив целых чисел, выполняя накопление суммы. Выберите правильный результат, который будет выведен на экран после выполнения программы. Учтите начальное значение переменной и порядок обхода элементов.
int[] numbers = {1, 2, 3, 4, 5};
int sum = 0;
for (int num : numbers) {
sum += num;
}
System.out.println(sum);4. Выбери подходящий тип цикла
В этом задании вам предстоит заполнить пропуски в коде, выбирая подходящий тип цикла for или for-each из выпадающего списка. Вам даны пять фрагментов кода, в каждом из которых нужно решить, какой цикл лучше подходит для решения задачи: обычный for с индексом или for-each для перебора элементов массива. Обратите внимание на контекст: если нужен доступ к индексу или изменение элементов массива, может потребоваться обычный for; если требуется просто перебрать все элементы для чтения, удобнее for-each. Выберите правильные варианты из списка, чтобы код стал корректным и выполнял описанные действия.
// 1. Вывод всех элементов массива
String[] names = {"Alice", "Bob", "Charlie"};
input1S (String name : names) {
System.out.println(name);
}
// 2. Удвоение каждого элемента целочисленного массива
int[] numbers = {1, 2, 3, 4, 5};
input2S (int i = 0; i < numbers.length; i++) {
numbers[i] = numbers[i] * 2;
}
// 3. Поиск индекса заданного значения в массиве
int[] values = {10, 20, 30, 40, 50};
int target = 30;
int index = -1;
input3S (int i = 0; i < values.length; i++) {
if (values[i] == target) {
index = i;
break;
}
}
// 4. Вывод элементов массива в обратном порядке
char[] letters = {'a', 'b', 'c', 'd'};
input4S (int i = letters.length - 1; i >= 0; i--) {
System.out.print(letters[i] + " ");
}
// 5. Подсчёт суммы элементов массива
double[] prices = {1.99, 2.99, 3.99, 4.99};
double total = 0.0;
input5S (double price : prices) {
total += price;
}5. Собери перебор массива
Из предложенных строк соберите корректную Java-программу, которая создаёт массив строк и выводит все его элементы в консоль, используя цикл for-each (enhanced for). Программа должна содержать объявление класса Main, метод main, создание массива, цикл for-each для перебора и вывод каждого элемента. Одна из предложенных строк содержит обычный цикл for с индексом — эта строка лишняя и не должна входить в итоговое решение.
public class Main { public static void main(String[] args) { String[] fruits = {"apple", "banana", "orange"}; for (String fruit : fruits) { System.out.println(fruit); } for (int i = 0; i < fruits.length; i++) { }}6. Сопоставь задачу и цикл
В левой колонке приведены задачи по работе с массивами в Java. В правой колонке указаны рекомендации по выбору типа цикла для решения каждой задачи. Сопоставьте каждую задачу с наиболее подходящим типом цикла. Обратите внимание на необходимость доступа к индексу, модификации элементов или только чтения. Это упражнение поможет закрепить понимание, когда использовать обычный цикл for, а когда for-each в Java.
7. Разметь части for-each
Разметьте части цикла for-each в Java. Укажите для каждого выделенного сегмента, является ли он типом элемента, именем переменной, двоеточием, именем массива или телом цикла. Это упражнение поможет лучше понять структуру for-each цикла, используемого для итерации по массивам в Java.
for ({{String~|~t1}} {{item~|~t2}} {{:~|~t3}} {{items~|~t4}}) { {{System.out.println(item);~|~t5}} }