Как завершить программу в java
Перейти к содержимому

Как завершить программу в java

  • автор:

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 .

Как остановить выполнение программы java

Прервать выполнение программы можно вызвав System.exit() .

Передав в качестве аргумента 0, мы дадим команду на завершение без ошибки. А передав любое ненулевое число N — команду на завершение с ошибкой номер N :

System.exit(0); // завершение без ошибки System.exit(1); // завершение c ошибкой 1 

Вызов return из головного метода main также приведет к завершению программы.

Как остановить программу в java

Чтобы остановить программу в Java , можно воспользоваться методом System.exit() . Этот метод завершает работу Java Virtual Machine , вызывая операцию выхода из программы.

Например, чтобы остановить программу с кодом завершения 0, можно использовать следующий код:

System.exit(0); 

Также можно передать в метод System.exit() любой другой код завершения в качестве аргумента, если нужно передать информацию о том, почему программа была остановлена.

Как завершить программу Java при вводе пользователем символа q в любом месте программы?

Задача заключается в написании простенького калькулятора (число-операция-число-результат). Программа должна работать бесконечно, если пользователь вводит корректные данные, но если пользователь вводит букву q то программа должна завершиться (именно завершиться, а не уведомить об ошибке). Вот что у меня пока есть:

public static void main(String[] args) < Scanner sc = new Scanner(System.in); do < System.out.println("Введите число"); int a = sc.nextInt(); sc.nextLine(); System.out.println("Введите операцию"); String s = sc.nextLine(); System.out.println("Введите число"); int b = sc.nextInt(); if (s.equals("+")) < int res = 0; res = a + b; System.out.println(res); >char c = s.charAt(0); if (c == ('q')) break; > while(true);

Сейчас это работает если вместо математического знака ввести q. Но как мне сделать так, чтобы программа завершалась если пользователь введет q вместо числа?

  • Вопрос задан более двух лет назад
  • 3372 просмотра

Комментировать
Решения вопроса 1

azerphoenix

Орхан Гасанлы @azerphoenix Куратор тега Java
Java Software Engineer

if (c == ('q')) break;

тут используйте не break, а System.exit(0);
https://www.tutorialspoint.com/java/lang/system_ex.
Ответ написан более двух лет назад
JennyK @JennyK Автор вопроса

Хорошо, правда не очень понимаю разницу между System.exit(0); и break; (я совсем новичок).
И это все равно не решает проблемы: «Но как мне сделать так, чтобы программа завершалась если пользователь введет q вместо ЧИСЛА?»

azerphoenix

Орхан Гасанлы @azerphoenix Куратор тега Java

Хорошо, правда не очень понимаю разницу между System.exit(0); и break; (я совсем новичок).

System.exit(0); используется для выхода из программы.
break; используется для выхода из цикла или например, из конструкции switch case
continue; используется для завершения (пропуска) текущей итерации цикла и продолжения цикла

Тут следующий момент, так как конструкция if у вас находится в конце, то пользователь не может выйти из любой точки программы, т.е. он должен ввести 2 числа и операнд, чтобы потом можно было ввести «q» и выйти из программы.
Соответственно, конструкцию if нужно перекинуть вверх.

Вот, ваш код (прокомментировал его):

public static void main(String[] args) < Scanner sc = new Scanner(System.in); /* * Если например, я хочу выйти из программы сразу же после запуска, то при вводе q * будет выброшено исключение, так как на вход я ожидается число (nexInt) * */ do < System.out.println("Введите число"); int a = sc.nextInt(); sc.nextLine(); System.out.println("Введите операцию"); String s = sc.nextLine(); System.out.println("Введите число"); int b = sc.nextInt(); if (s.equals("+")) < int res = 0; res = a + b; System.out.println(res); >// Сюда не доходит даже char c = s.charAt(0); if (c == ('q')) < System.exit(0); >> while (true); >

Напишу простой вариант реализации, а вы изучите и посмотрите на преимущества и недостатки.

public class Main < public static void main(String[] args) < Scanner sc = new Scanner(System.in); do < System.out.println("Введите первое число:"); int a = sc.nextInt(); sc.nextLine(); System.out.println("Введите операцию:"); char operator = sc.nextLine().charAt(0); System.out.println("Введите второе число:"); int b = sc.nextInt(); int result = 0; if (operator == '+') < result = a + b; >else if (operator == '-') < result = a - b; >else if (operator == '*') < result = a * b; >else if (operator == '/') < result = a / b; >System.out.println("Результат: " + result); sc.nextLine(); System.out.println("Для выхода из программы введите - q"); char c = sc.nextLine().charAt(0); if (c == ('q')) < System.exit(0); >> while (true); > >

Конечно же нужно будет обработать ошибки. Можно заменить if else if на switch case и т.д.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *