Главная страница » Java » 56. Условия внутри тела цикла
Циклы в Java (for
, while
, do-while
) позволяют выполнять блок кода многократно. Условия внутри тела цикла помогают управлять выполнением кода в зависимости от текущих значений или состояний. Эти условия позволяют добавлять логику в цикл, например, для фильтрации данных, проверки условий или изменения поведения в зависимости от результата проверки.
for
с условиемЦикл for
позволяет выполнять блок кода для каждого элемента в заданном диапазоне, и условия внутри этого блока могут изменять поведение кода.
Пример:
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
System.out.println(i + " — четное число");
} else {
System.out.println(i + " — нечетное число");
}
}
}
}
Как это работает:
for
итерирует от 0
до 9
.if
проверяет, четное ли текущее число, и выводит соответствующее сообщение.while
с условиемЦикл while
выполняет блок кода до тех пор, пока заданное условие истинно. Условия внутри тела цикла могут использоваться для изменения поведения цикла на основе текущих значений.
Пример:
public class Main {
public static void main(String[] args) {
int i = 0;
while (i < 10) {
if (i % 3 == 0) {
System.out.println(i + " делится на 3");
}
i++;
}
}
}
Как это работает:
while
продолжает выполняться, пока значение i
меньше 10
.if
проверяет, делится ли текущее значение на 3
, и выводит сообщение, если это так.do-while
с условиемЦикл do-while
выполняет блок кода хотя бы один раз и продолжает выполнение, пока условие истинно. Условия внутри тела цикла могут использоваться для дополнительной проверки и обработки.
Пример:
public class Main {
public static void main(String[] args) {
int i = 0;
do {
if (i % 5 == 0 && i != 0) {
System.out.println(i + " делится на 5");
}
i++;
} while (i < 15);
}
}
Как это работает:
do-while
выполняется, пока значение i
меньше 15
.if
проверяет, делится ли текущее значение на 5
, и выводит сообщение, если это так.Можно использовать условия внутри цикла для фильтрации элементов на основе определенных критериев.
Пример:
public class Main {
public static void main(String[] args) {
int[] numbers = {12, 45, 78, 23, 56, 89, 34};
for (int num : numbers) {
if (num > 50) {
System.out.println(num + " больше 50");
}
}
}
}
Как это работает:
for-each
проходит по массиву numbers
.if
проверяет, больше ли текущее число 50
, и если да, выводит это число.Условия внутри цикла могут использоваться для поиска конкретного элемента в массиве или коллекции.
Пример:
public class Main {
public static void main(String[] args) {
String[] names = {"Alice", "Bob", "Charlie", "Diana"};
String searchName = "Charlie";
boolean found = false;
for (String name : names) {
if (name.equals(searchName)) {
found = true;
break;
}
}
if (found) {
System.out.println(searchName + " найдено в массиве.");
} else {
System.out.println(searchName + " не найдено в массиве.");
}
}
}
Как это работает:
for-each
проходит по массиву names
.if
проверяет, совпадает ли текущий элемент с искомым именем.found
в true
и цикл прерывается.При использовании условий внутри циклов важно избегать сложных вычислений или операций, которые могут замедлить выполнение кода.
Пример неэффективного подхода:
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
if (isPrime(num)) {
System.out.println(num + " — простое число");
}
}
}
public static boolean isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i < num; i++) {
if (num % i == 0) return false;
}
return true;
}
}
Оптимизированный пример:
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
if (isPrime(num)) {
System.out.println(num + " — простое число");
}
}
}
public static boolean isPrime(int num) {
if (num <= 1) return false;
if (num == 2) return true; // 2 является простым числом
if (num % 2 == 0) return false; // исключаем четные числа
for (int i = 3; i <= Math.sqrt(num); i += 2) {
if (num % i == 0) return false;
}
return true;
}
}
Как это работает:
isPrime()
включает проверки для исключения четных чисел и проверки до квадратного корня числа, что повышает эффективность.Проверьте, чтобы условия не приводили к лишнему выполнению кода, что может замедлить выполнение программы.
Пример ошибки:
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
System.out.println("Четное: " + i);
// Лишнее выполнение
if (i > 5) {
System.out.println("i больше 5");
}
}
}
}
}
Исправление:
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i % 2 == 0 && i > 5) {
System.out.println("Четное число больше 5: " + i);
}
}
}
}
Убедитесь, что условия комбинируются правильно, чтобы избежать логических ошибок.
Пример ошибки:
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i % 2 == 0 || i % 3 == 0) {
System.out.println(i + " делится на 2 или 3");
}
}
}
}
Исправление:
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i % 2 == 0 && i % 3 == 0) {
System.out.println(i + " делится и на 2, и на 3");
}
}
}
}
Условия внутри тела цикла позволяют добавлять гибкость и динамическое поведение в ваши циклы. Правильное использование условий может улучшить логику выполнения и повысить эффективность кода. Убедитесь, что вы избегаете распространённых ошибок, и оптимизируйте ваш код для лучшей производительности.
Подсчет количества четных чисел в массиве:
Напишите программу, которая принимает массив целых чисел и выводит количество четных чисел в массиве.
public class Main {
public static void main(String[] args) {
int[] numbers = {3, 6, 8, 10, 15, 22, 27};
int count = 0;
for (int num : numbers) {
if (num % 2 == 0) {
count++;
}
}
System.out.println("Количество четных чисел: " + count);
}
}
Поиск минимального числа в массиве, исключая определенное значение:
Напишите программу, которая ищет минимальное значение в массиве целых чисел, исключая указанное значение.
public class Main {
public static void main(String[] args) {
int[] numbers = {5, 8, 12, 4, 7, 6};
int exclude = 4;
int min = Integer.MAX_VALUE;
for (int num : numbers) {
if (num != exclude && num < min) {
min = num;
}
}
System.out.println("Минимальное значение (исключая " + exclude + "): " + min);
}
}
Подсчет количества элементов, которые соответствуют определенному условию:
Напишите программу, которая считает количество элементов в массиве строк, которые начинаются с буквы «A».
public class Main {
public static void main(String[] args) {
String[] names = {"Alice", "Bob", "Anna", "Alex", "Brian"};
int count = 0;
for (String name : names) {
if (name.startsWith("A")) {
count++;
}
}
System.out.println("Количество имен, начинающихся на 'A': " + count);
}
}
Проверьте свою программу, чтобы убедиться, что она правильно выполняет все операции и обрабатывает возможные ошибки.
Наша цель и главная задача сделать качественное образование в вашем браузере
Телефон: +375 33 910-08-92
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024 Все права защищены. CodeFor.