Я вперше побачив це ключове слово і мені було цікаво, чи хтось може мені пояснити, що це робить.
- Що таке
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
або for
цикл не відразу помічена. Те саме стосується return
середини методу, але з дещо іншої причини.
Як уже говорили інші, continue
рухаємося до наступної ітерації циклу, покиbreak
виходить з циклу, що вкладається.
Це можуть бути тимчасові бомби обслуговування, оскільки між continue
/ break
та циклом, який він продовжує / порушує, крім контексту, немає безпосереднього зв’язку ; додайте внутрішню петлю або перемістіть "кишки" циклу в окремий метод, і у вас є прихований ефект continue
/ / break
невдача.
ІМХО, найкраще використовувати їх як міру останньої інстанції, а потім переконатися, що їх використання щільно згруповано на початку або в кінці циклу, щоб наступний розробник міг бачити "межі" циклу на одному екрані .
continue
, break
І return
(крім Єдиного Істинного Повернення в кінці вашого методу) все потрапляють в загальну категорію «прихованих GOTOS». Вони розміщують цикл і управління функціями в несподіваних місцях, що згодом викликає помилки.
"продовжити" в 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% ... ви помиляєтеся!
Продовжити - ключове слово на 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);
}
}
}
Продовжити оператор у вищевказаній програмі просто пропускає ітерацію, коли я парний, і друкує значення i, коли воно непарне.
Продовжити оператор просто виводить вас з циклу, не виконуючи решта операторів всередині циклу і запускаючи наступну ітерацію.
Розглянемо умову If Else. Оператор продовження виконує те, що є в умові, і виходить з умови, тобто переходить до наступної ітерації чи умови. Але Перерва залишає петлю. Розглянемо наступну програму. '
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 З циклу.
Якщо ви використовуєте перерву замість продовження (Після, якщо.), Вона просто надрукує aa і з циклу .
Якщо умова "bb" дорівнює ss, виконується: Для продовження: Переходить до наступної ітерації, тобто "cc" .equals (ss). Для перерви: він виходить із циклу та друкує "З циклу".
break
Я трохи запізнююся на вечірку, але ...
Варто згадати, що continue
корисно для порожніх циклів, де вся робота виконується в умовному виразі, що керує циклом. Наприклад:
while ((buffer[i++] = readChar()) >= 0)
continue;
У цьому випадку вся робота з читання персонажа та його додавання buffer
виконується у виразі, що керує while
циклом. continue
Заява є візуальним індикатором , що петля не потрібно тіло.
Це трохи більш очевидно, ніж еквівалент:
while (...)
{ }
і, безумовно, кращий (і безпечніший) стиль кодування, ніж використання порожнього оператора типу:
while (...)
;
while
стане частиною while
пункту, і що не буде візуально очевидним. Явне continue
очевидне і передає наміри, що порожній вислів не робить.
В основному в java, продовження - це заява. Отже, оператор продовження зазвичай використовується разом із циклами, щоб пропустити поточну ітерацію.
Про те, як і коли він використовується в java, перейдіть за посиланням нижче. Він отримав пояснення на прикладі.
https://www.flowerbrackets.com/continue-java-example/
Сподіваюся, це допомагає !!
continue
має бути всередині циклу. В іншому випадку це показанопомилка нижче:
Продовжуйте поза петлею
Оператор продовження використовується в структурі управління циклом, коли вам потрібно негайно перейти до наступної ітерації циклу.
Її можна використовувати з циклом або під час циклу. Оператор продовження Java використовується для продовження циклу. Він продовжує поточний потік програми та пропускає код, що залишився, за вказаною умовою.
У разі внутрішньої петлі вона продовжує лише внутрішню петлю.
Ми можемо використовувати оператор продовження Java у всіх типах циклів, таких як цикл, в той час як цикл і цикл виконання.
наприклад
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 пропускає]