Я впервые увидел это ключевое слово, и мне было интересно, может ли кто-нибудь объяснить мне, что оно делает.
- Какое
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) как предупреждение о том, что код может использовать некоторый рефакторинг, особенно если объявление цикла whileor forне сразу видно. То же самое верно для returnсередины метода, но по несколько иной причине.
Как уже говорили другие, continueпереходит к следующей итерации цикла, а breakвыходит из замкнутого цикла.
Это могут быть временные бомбы обслуживания, потому что нет прямой связи между continue/ breakи циклом, который он продолжает / прерывает, кроме контекста; добавьте внутренний цикл или переместите «кишки» цикла в отдельный метод, и вы получите скрытый эффект continue/ breakfailing.
ИМХО, лучше использовать их в качестве крайней меры, а затем убедиться, что их использование тесно сгруппировано в начале или конце цикла, чтобы следующий разработчик мог видеть «границы» цикла на одном экране ,
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 пропущен]