Я видел это ключевое слово в первый раз, и мне было интересно, может ли кто-нибудь объяснить мне, что он делает.
- Что такое ключевое слово
continue
? - Как это работает?
- Когда он используется?
Я видел это ключевое слово в первый раз, и мне было интересно, может ли кто-нибудь объяснить мне, что он делает.
continue
?A continue
без метки будет повторно выполняться из условия самого внутреннего цикла while
или do
и из выражения обновления самого внутреннего цикла for
. Он часто используется для раннего завершения обработки цикла и, следовательно, для предотвращения глубоко вложенных операторов if
. В следующем примере continue
получит следующую строку, не обрабатывая следующий оператор в цикле.
while (getNext(line)) {
if (line.isEmpty() || line.isComment())
continue;
// More code here
}
С меткой continue
будет повторно выполняться из цикла с соответствующей меткой, а не с самой внутренней петлей. Это можно использовать для выхода из глубоко вложенных циклов или просто для ясности.
Иногда continue
также используется в качестве заполнителя для того, чтобы сделать пустой объект цикла более понятным.
for (count = 0; foo.moreData(); count++)
continue;
Тот же оператор без метки также существует в C и С++. Эквивалент в Perl равен next
.
Этот тип потока управления не рекомендуется, но если вы так решите, вы также можете использовать continue
для моделирования ограниченной формы goto
. В следующем примере continue
перезапустит пустой цикл for (;;)
.
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;
continue
похож на goto
. Вы знакомы с break
? Легче об этом думать:
break
завершает цикл (перескакивает на код ниже).
continue
завершает оставшуюся часть обработки кода внутри цикла для текущей итерации, но продолжает цикл.
Давайте посмотрим на пример:
int sum = 0;
for(int i = 1; i <= 100 ; i++){
if(i % 2 == 0)
continue;
sum += i;
}
Это позволит получить сумму только нечетных чисел от 1 до 100.
Если вы думаете о теле цикла как подпрограмме, continue
вроде как return
. Одно и то же ключевое слово существует в C и служит той же цели. Здесь надуманный пример:
for(int i=0; i < 10; ++i) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
Откроется только нечетные числа.
Как правило, я вижу continue
(и break
) как предупреждение о том, что код может использовать некоторый рефакторинг, особенно если объявление цикла while
или for
не отображается сразу. То же самое верно для return
в середине метода, но по несколько иной причине.
Как уже говорили другие, continue
перемещается к следующей итерации цикла, а break
выходит из замкнутого цикла.
Это могут быть временные интервалы обслуживания, потому что нет прямой связи между continue
/break
и циклом, который он продолжает/прерывает, кроме контекста; добавьте внутренний цикл или переместите "кишки" цикла в отдельный метод, и у вас есть скрытый эффект сбой continue
/break
.
IMHO, лучше использовать их в качестве крайней меры, а затем, чтобы убедиться, что их использование сгруппировано плотно в начале или в конце цикла, так что следующий разработчик может увидеть "границы" цикла на одном экране.
continue
, break
и return
(кроме True True Return в конце вашего метода) все относятся к общей категории "скрытых GOTO". Они помещают петлю и управление функциями в неожиданные места, что в итоге вызывает ошибки.
"Продолжить" в Java означает перейти к концу текущего цикла, означает: если компилятор увидит продолжение в цикле, он перейдет к следующей итерации
Пример: это код для печати нечетных чисел от 1 до 10
компилятор будет игнорировать код печати всякий раз, когда видит, что он продолжает переходить к следующей итерации
for (int i = 0; i < 10; i++) {
if (i%2 == 0) continue;
System.out.println(i+"");
}
Как уже упоминалось, continue
пропустит обработку кода ниже него и до конца цикла. Затем вы перемещаетесь в условие цикла и запускаете следующую итерацию, если это условие все еще выполняется (или если есть флаг, в обозначенное условие цикла).
Необходимо подчеркнуть, что в случае do - while
вы перемещаетесь в состояние внизу после continue
, а не в начале цикла.
Вот почему многие люди не могут правильно ответить на то, что будет генерировать следующий код.
Random r = new Random();
Set<Integer> aSet= new HashSet<Integer>();
int anInt;
do {
anInt = r.nextInt(10);
if (anInt % 2 == 0)
continue;
System.out.println(anInt);
} while (aSet.add(anInt));
System.out.println(aSet);
* Если ваш ответ таков, что aSet
будет содержать нечетные числа только на 100%... вы ошибаетесь!
Рассмотрим условие If Else. Оператор continue выполняет то, что есть в состоянии, и выходит из условия, то есть переходит к следующей итерации или условию. Но перерыв оставляет петлю. Рассмотрим следующую программу. '
public class ContinueBreak {
public static void main(String[] args) {
String[] table={"aa","bb","cc","dd"};
for(String ss:table){
if("bb".equals(ss)){
continue;
}
System.out.println(ss);
if("cc".equals(ss)){
break;
}
}
System.out.println("Out of the loop.");
}
}
Он будет печатать: aa cc Из цикла.
Если вы используете break вместо continue (After if.), он просто распечатает aa и выйдет из цикла.
Если условие "bb" равно ss, выполняется: Для продолжения: он переходит к следующей итерации, то есть "cc".equals(ss). For Break: он выходит из цикла и печатает "Out of the loop".
Я немного опоздал на вечеринку, но...
Стоит отметить, что continue
полезен для пустых циклов, где вся работа выполняется в условном выражении, управляющем циклом. Например:
while ((buffer[i++] = readChar()) >= 0)
continue;
В этом случае, все работы, чтения символа и добавления его в buffer
делается в выражении контролирующего while
цикл. Оператор continue
служит визуальным индикатором того, что цикл не нуждается в теле.
Это немного более очевидно, чем эквивалент:
while (...)
{ }
и определенно лучший (и более безопасный) стиль кодирования, чем использование пустого выражения вроде:
while (...)
;
В основном в Java, продолжить это утверждение. Поэтому оператор continue обычно используется с циклами для пропуска текущей итерации.
Как и когда он используется в Java, смотрите ссылку ниже. У него есть объяснение с примером.
https://www.flowerbrackets.com/continue-java-example/
Надеюсь, поможет !!
Continue - это ключевое слово в Java, которое используется для пропуска текущей итерации.
Предположим, вы хотите распечатать все нечетные числа от 1 до 100
public class Main {
public static void main(String args[]) {
//Program to print all odd numbers from 1 to 100
for(int i=1 ; i<=100 ; i++) {
if(i % 2 == 0) {
continue;
}
System.out.println(i);
}
}
}
Оператор continue в приведенной выше программе просто пропускает итерацию, когда i четное, и печатает значение i, если оно нечетное.
Оператор Continue просто выводит вас из цикла без выполнения оставшихся операторов внутри цикла и запускает следующую итерацию.