Я впервые увидел это ключевое слово, и мне было интересно, может ли кто-нибудь объяснить мне, что оно делает.
- Какое
continue
ключевое слово? - Как это работает?
- Когда это используется?
Я впервые увидел это ключевое слово, и мне было интересно, может ли кто-нибудь объяснить мне, что оно делает.
continue
ключевое слово?Ответы:
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 и C ++. Эквивалент в Perl есть next
.
Этот тип потока управления не рекомендуется, но если вы решите, вы также можете использовать его continue
для имитации ограниченной формы goto
. В следующем примере continue
будет повторно выполнен пустой for (;;)
цикл.
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;
continue
вроде как goto
. Вы знакомы с break
? Легче думать о них в отличие
break
завершает цикл (переходит к коду под ним).
continue
завершает остальную часть обработки кода в цикле для текущей итерации, но продолжает цикл.
Если вы думаете о теле цикла как о подпрограмме, continue
это вроде как return
. Такое же ключевое слово существует в C и служит для той же цели. Вот надуманный пример:
for(int i=0; i < 10; ++i) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
Это распечатает только нечетные числа.
Как правило, я вижу continue
(и break
) как предупреждение о том, что код может использовать некоторый рефакторинг, особенно если объявление цикла while
or for
не сразу видно. То же самое верно для return
середины метода, но по несколько иной причине.
Как уже говорили другие, continue
переходит к следующей итерации цикла, а break
выходит из замкнутого цикла.
Это могут быть временные бомбы обслуживания, потому что нет прямой связи между continue
/ break
и циклом, который он продолжает / прерывает, кроме контекста; добавьте внутренний цикл или переместите «кишки» цикла в отдельный метод, и вы получите скрытый эффект continue
/ break
failing.
ИМХО, лучше использовать их в качестве крайней меры, а затем убедиться, что их использование тесно сгруппировано в начале или конце цикла, чтобы следующий разработчик мог видеть «границы» цикла на одном экране ,
continue
, break
и return
(кроме «Единого истинного возврата» в конце вашего метода) все попадают в общую категорию «скрытых GOTO». Они помещают управление циклами и функциями в неожиданные места, что в конечном итоге приводит к ошибкам.
«продолжить» в Java означает перейти к концу текущего цикла, означает: если компилятор увидит продолжение в цикле, он перейдет к следующей итерации
Пример: это код для печати нечетных чисел от 1 до 10
компилятор будет игнорировать код печати всякий раз, когда видит, что он продолжает переходить к следующей итерации
for (int i = 0; i < 10; i++) {
if (i%2 == 0) continue;
System.out.println(i+"");
}
Как уже упоминалось, continue
будет пропущена обработка кода ниже и до конца цикла. Затем вы переходите к условию цикла и запускаете следующую итерацию, если это условие все еще выполняется (или если есть флаг, к условию обозначенного цикла).
Следует подчеркнуть, что в случае do - while
вы перешли к условию внизу после a 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% ... вы не правы!
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 просто выводит вас из цикла без выполнения остальных операторов внутри цикла и запускает следующую итерацию.
Рассмотрим условие 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 Out of the loop.
Если вы используете break вместо continue (After if.), Это просто aa и выходит из цикла .
Если условие "bb" равно ss выполняется: Для продолжения: переход к следующей итерации, т.е. "cc" .equals (ss). Для разрыва: он выходит из цикла и печатает «Из цикла».
break
Я немного опоздал на вечеринку, но ...
Стоит отметить, что continue
это полезно для пустых циклов, где вся работа выполняется в условном выражении, управляющем циклом. Например:
while ((buffer[i++] = readChar()) >= 0)
continue;
В этом случае вся работа по чтению символа и добавлению его buffer
выполняется в выражении, управляющем while
циклом. continue
Заявление служит визуальным индикатором , что петля не нужно тело.
Это немного более очевидно, чем эквивалент:
while (...)
{ }
и определенно лучший (и более безопасный) стиль кодирования, чем использование пустого выражения вроде:
while (...)
;
while
станет телом while
предложения, и которое не было бы визуально очевидно. Явное continue
очевидно и выражает намерение, которого нет в пустом утверждении.
В основном в Java, продолжить это утверждение. Поэтому оператор continue обычно используется с циклами для пропуска текущей итерации.
Как и когда он используется в Java, смотрите ссылку ниже. У него есть объяснение с примером.
https://www.flowerbrackets.com/continue-java-example/
Надеюсь, поможет !!
continue
должен быть внутри цикла, иначе он показывает ошибку ниже:
Продолжить вне цикла
Оператор continue используется в структуре управления циклом, когда вам нужно сразу перейти к следующей итерации цикла.
Может использоваться с циклом for или while. Оператор Java continue используется для продолжения цикла. Он продолжает текущий поток программы и пропускает оставшийся код при указанном условии.
В случае внутреннего цикла он продолжает только внутренний цикл.
Мы можем использовать оператор Java continue во всех типах циклов, таких как цикл for, while и do-while.
например
class Example{
public static void main(String args[]){
System.out.println("Start");
for(int i=0; i<10; i++){
if(i==5){continue;}
System.out.println("i : "+i);
}
System.out.println("End.");
}
}
вывод:
Start
i : 0
i : 1
i : 2
i : 3
i : 4
i : 6
i : 7
i : 8
i : 9
End.
[номер 5 пропущен]