Как остановить выполнение программы java
Прервать выполнение программы можно вызвав System.exit() .
Передав в качестве аргумента 0, мы дадим команду на завершение без ошибки. А передав любое ненулевое число N — команду на завершение с ошибкой номер N :
System.exit(0); // завершение без ошибки System.exit(1); // завершение c ошибкой 1
Вызов return из головного метода main также приведет к завершению программы.
System.exit()
Метод System.exit() используется в языке Java для завершения программы. Этот метод на вход принимает значение типа int . Обычно это 0, что говорит о том, что программа завершается без ошибок. Любое другое значение говорит о том, что программа завершилась с ошибкой.
public class SysExit < public static void main(String[] args) < System.out.println("Дo возврата."); method(true); System.out.println("Этот оператор выполняться не будет."); >public static void method(boolean flag) < if (flag) < System.exit(0); >System.out.println("Этот оператор метода выполняться не будет."); > >
Результат выполнения программы:
Дo возврата.
Презентацию с видео можно скачать на Patreon .
Прерывание цикла
Программа читает с консоли строки, пока не будет введено слово exit . Если ввести это слово, переменная isExit станет true , а условие цикла ! isExit примет значение false , и цикл завершится.
В Java есть специальный оператор break , который позволяет упростить написание такой логики. Если выполнить команду break внутри цикла, он немедленно завершается: программа начнет выполнять команды, которые идут после цикла. Команда очень лаконична:
break;
Вот как можно переписать только что разобранный пример с использованием break :
Scanner console = new Scanner(System.in); while (true) < String s = console.nextLine(); if (s.equals("exit")) break; >
2. Команда continue
Но break — не единственный оператор, который позволяет управлять поведением цикла. В Java еще один оператор — continue . Если выполнить команду continue внутри цикла, текущий виток цикла завершится досрочно.
Выполнение тела цикла один раз называется витком цикла. Команда continue прерывает текущий виток цикла, но не сам цикл, в отличие от команды break . Команда тоже лаконична:
continue;
Этот оператор continue очень удобно использовать в цикле, если мы хотим «пропускать» выполнение тела цикла для некоторых ситуаций.
Задача: мы хотим написать программу, которая выводит на экран 20 чисел от 1 до 20 , и при этом пропускает числа, которые делятся на 7 . Вот как мог бы выглядеть этот код:
int i = 1; while (i i % 7) == 0 ) continue; System.out.println(i); i++; >
На самом деле такой код работать не будет, потому что i навсегда застынет на цифре 7 . Ведь вызов continue привел к тому, что пропустились две команды — System.out.println (i) и i++ . Поэтому достигнув значения 7 , переменная i перестанет меняться, и цикл будет выполняться вечно.
Мы специально написали такой код, т.к. это очень распространенная ошибка. Как же его исправить?
Тут есть два варианта:
Вариант 1: изменить i перед вызовом continue , но после вызова i % 7
Вариант 2: увеличивать i всегда в начале цикла. Но тогда стартовое значение i должно быть 0 .
int i = 1; while (i i % 7) == 0 ) < i++; continue; > System.out.println(i); i++; >
int i = 0; while (i < 20) < i++; if ( (i % 7) == 0) continue; System.out.println(i); >
Как остановить программу в java
Чтобы остановить программу в Java , можно воспользоваться методом System.exit() . Этот метод завершает работу Java Virtual Machine , вызывая операцию выхода из программы.
Например, чтобы остановить программу с кодом завершения 0, можно использовать следующий код:
System.exit(0);
Также можно передать в метод System.exit() любой другой код завершения в качестве аргумента, если нужно передать информацию о том, почему программа была остановлена.