English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной курс Java

Java Управление потоком

Java Массив

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java Список (List)

Java Очередь (Queue)

Java Карта (Map)

Java Набор (Set)

Java Вход/Выход (I/O)

Java Reader/Writer

Другие темы Java

Оператор continue Java

В этом руководстве вы узнаете о строке continue в Java и о командах, помеченных как continue, с помощью примеров.

При обработке циклов иногда необходимо пропустить某些 строки в цикле или немедленно прекратить цикл, не проверяя выражение условия.

В этом случае будут использоваться строки break и continue. Для получения информации о строке break, пожалуйста, посетитеJava break.

Строка continue в Java пропускает текущую итерацию цикла (for, while, do…while и т.д.), и управление программой передается в конец цикла, где выполняется проверка выражения условия цикла.

Для цикла for, команда обновления выполняется до проверки выражения условия.

строка continue почти всегда используется в (строка if ... elseИспользуется в решающих выражениях. Грамматика:

continue;

Как работает строка continue?

Схема работы строки continue в Java

Пример 1: Строка continue в Java

class Test {
    public static void main(String[] args) {
      
        // Цикл for
        for (int i = 1; i <= 10; ++i) {
            // Если значение i находится между 4 и 9, выполняется continue
            if (i > 4 && i < 9) {
                continue;
            }      
            System.out.println(i);
        }   
    }
}

Вывод:

1
2
3
4
9
10

В上面的 программе мы используем цикл for для вывода значения i в каждом итерации. Для получения информации о работе цикла for, пожалуйста, посетитеЦикл for JavaОбратите внимание на следующие строки:

if (i > 5 && i < 9) {
    continue;
}

Это означает, что когда значение i больше 4 и меньше 9, команда print в цикле пропускается. Таким образом, значения 5, 6, 7 и 8 не выводятся.

Пример 2: Строка continue в Java

Ниже приведен пример программы, которая вычисляет сумму 5 положительных чисел, введенных пользователем. Если пользователь вводит отрицательное или нулевое значение, его пропускают в вычислениях.

Для приема ввода пользователя мы используем объект Scanner. Для получения дополнительной информации о Scanner, пожалуйста, посетитеJava Scanner.

import java.util.Scanner;
class AssignmentOperator {
    public static void main(String[] args) {
      
        Double number, sum = 0.0;
        //Создать объект Scanner
        Scanner input = new Scanner(System.in);
      
        for (int i = 1; i < 6; ++i) {
            System.out.print("Ввести цифру: ");
            //Принимать ввод данных типа double
            number = input.nextDouble();
         
            //Если number отрицательное, пропустить итерацию
            if (number <= 0.0) {
                continue;
            }
         
            sum += number;
        }
        System.out.println("Sum = " + sum);
    }
}

Вывод:

Ввести цифру: 2.2
Ввести цифру: 5.6
Ввести цифру: 0
Ввести цифру: -2.4
Ввести цифру: -3
Sum = 7.8

В этом примере обратите внимание на следующие строки:

if (number < 0.0) {
    continue;
}

 Это означает, что при вводе отрицательного числа текущий цикл пропустит текущий цикл. Начнется следующая итерация.

Java continue и внутренние циклы

ЕслиВнутренние циклыв этом случае continue пропустит текущий цикл наиболее внутреннего цикла.

Дорожная карта работы оператора continue в嵌套анных циклах

Оператор continue с меткой

 До сих пор мы использовали неопределенные операторы continue. Они используются для завершения работы наиболее внутреннего цикла и switch-конструкций. Однако, в Java существует и другой вид оператора continue, называемый меткой continue.

Дорожная карта работы оператора continue с меткой в Java

Как показано на рисунке, мы используем идентификатор label для указания внешнего цикла. Теперь обратите внимание, как используется этот оператор continue (continue label;).

 Здесь оператор continue пропустит текущий цикл метки (т.е. внешнюю петлю). Затем управление передачей к следующему циклу метки (внешний цикл)

Пример 3: оператор continue с меткой

class LabeledContinue {
    public static void main(String[] args) {
        //外部for循环标记为label     
        first:
        for (int i = 1; i < 6; ++i) {
            for (int j = 1; j < 5; ++j) {
                if (i == 3 || j == 2)
                    //Пропуск итерации с меткой (внешний цикл for)
                    continue first;
                System.out.println("i = " + i + "; j = " + j); 
            }
        } 
    }
}

Вывод:

i = 1; j = 1
i = 2; j = 1
i = 4; j = 1
i = 5; j = 1

 В примере выше используется labeled continue для пропуска текущей итерации цикла, помеченного как first.

if (i==3 || j==2)
    continue first;

 Здесь мы можем увидеть, что внешний цикл for помечен как first,

first:
for (int i = 1; i < 6; ++i) {..}

 Таким образом, если значение i равно 3 или значение j равно 2, пропустить итерацию внешнего цикла for.

ВниманиеОбычно не рекомендуется использовать labeled continue, так как это делает код трудным для понимания. Если вы находитесь в ситуации, когда вам необходимо использовать labeled continue,重构代码 и постарайтесь решить проблему другим способом, чтобы сделать его более читаемым.