Javaでプログラムを終了させるには、「exitメソッド」を使います。
この記事では、exitメソッドの特徴や使い方などについて解説します。
Exit Code(System.exitメソッド)とは

exitメソッドを使うと、プログラムをその場で終了させます。
記述方法は次の通りです。
System.exit(0);
exitメソッドの引数に「0」を指定すると正常終了、「0以外」を指定すると異常終了を意味します。
exitメソッドの使い方

では、exitメソッドの使い方を見ていきましょう。
exitメソッドは、その場でプログラムを終了させるので、exitメソッド以降に書かれた処理は実行されません。
次のように記述して、プログラムを実行してみます。
■記述例
public class Main {
  public static void main(String[] args){
    System.out.println("exitメソッドの前に書かれた文章です");
    System.exit(0);
    System.out.println("exitメソッドの後に書かれた文章です");
  }
}
■実行結果
mbp:Desktop potepan$ java Main
exitメソッドの前に書かれた文章です
このように、exitメソッド以降の処理は実行されません。
exitメソッドとreturn文の挙動の違い

exitメソッド と return文 は何が違うんですか?
exitメソッドがプログラムを終了するのに対し、return文はメソッドを終了します。実際に挙動を確認してみましょう!
例えば、次のようにプログラムを記述しました。
変数sum と criteria の値が一致すれば、return文が実行されます。
■記述例
public class Main {
  public static void main(String[] args){
    System.out.println("計算を開始します!");
    calc();
    System.out.println("計算を終了しました!");
  }
  public static void calc(){
    int num01 = 10;
    int num02 = 20;
    int sum = num01 + num02;
    int criteria = 30;
    if( sum == criteria ) {
      System.out.println("計算結果 : " + sum);
      return;
    } else {
      System.out.println("計算結果が合わないため、プログラムを終了します!");
      System.exit(1);
    }
  }
}
return文は、メソッドを終了させる文なため、プログラム自体は終了しません。
そのため、実行結果は次のようになります。
■実行結果 mbp:Desktop potepan$ java Main 計算を開始します! 計算結果 : 30 計算を終了しました!
一方、exitメソッドは先述したようにプログラムを終了させます。
そのため、criteriaの値を変更してプログラムを実行してみると、実行結果は次のようになるのです。
■実行結果 mbp:Desktop potepan$ java Main 計算を開始します! 計算結果が合わないため、プログラムを終了します!
また、exitメソッドでプログラムを終了させた場合、finallyブロック内の処理も実行されないという特徴があります。
■記述例
public class Main {
  public static void main(String[] args){
    try {
        System.out.println("tryで実行された処理です!");
        return;
    } catch (Exception e) {
        System.out.println("catchで実行された処理です!");
    } finally {
        System.out.println("finallyで実行された処理です!");
    }
  }
}
■実行結果
mbp:Desktop potepan$ java Main
tryで実行された処理です!
finallyで実行された処理です!
■記述例
public class Main {
  public static void main(String[] args){
    try {
        System.out.println("tryで実行された処理です!");
        System.exit(0);
    } catch (Exception e) {
        System.out.println("catchで実行された処理です!");
    } finally {
        System.out.println("finallyで実行された処理です!");
    }
  }
}
■実行結果
mbp:Desktop potepan$ java Main
tryで実行された処理です!
for文をexitメソッドで終了

exitメソッドは、for文の中でも使用可能です。
例えば、次のプログラムでは変数iが「8」になった時点でプログラムを終了させています。
■記述例
public class Main {
  public static void main(String[] args){
    System.out.println("---ループを開始します---");
    for (int i = 0; i < 10; i++) {
      System.out.println(i + "回目の処理です");
      if (i == 8) {
        System.out.println("---プログラムを終了します---");
        System.exit(0);
      }
    }
    System.out.println("---ループを終了します---");
  }
}
■実行結果
mbp:Desktop potepan$ java Main
---ループを開始します---
0回目の処理です
1回目の処理です
2回目の処理です
3回目の処理です
4回目の処理です
5回目の処理です
6回目の処理です
7回目の処理です
8回目の処理です
---プログラムを終了します---
このように、ループが終了しています。
「プログラムを終了するのではなく、for文を抜けたいんだけど」
こんな場合は、「break文」「continue文」を使いましょう!
break文は、ループ処理を中断し、途中で抜けるときに使える構文です。
一方、continue文は、ループ処理の途中で処理をスキップし、次のループ処理に移るときに使える構文です。
実際にそれぞれの構文の処理を見ていきましょう。
まずは、break文です。
■記述例
public class Main {
  public static void main(String[] args){
    System.out.println("---ループを開始します---");
    for (int i = 0; i < 10; i++) {
      System.out.println(i + "回目の処理です");
      if (i == 8) {
        System.out.println("---breakを実行します---");
        break;
      }
    }
    System.out.println("---ループを終了します---");
  }
}
■実行結果
mbp:Desktop potepan$ java Main
---ループを開始します---
0回目の処理です
1回目の処理です
2回目の処理です
3回目の処理です
4回目の処理です
5回目の処理です
6回目の処理です
7回目の処理です
8回目の処理です
---breakを実行します---
---ループを終了します---
実行結果をわかる通り、8回目の処理でループが終了しているのがわかります。
しかし、プログラムは終了せずに、最後の「—ループを終了します—」まで表示されていますね。
次に、continue文です。
■記述例
public class Main {
  public static void main(String[] args){
    System.out.println("---ループを開始します---");
    for (int i = 0; i < 10; i++) {
      System.out.println(i + "回目の処理です");
      if (i == 8) {
        System.out.println("---continueを実行します---");
        continue;
      }
    }
    System.out.println("---ループを終了します---");
  }
}
■実行結果
mbp:Desktop potepan$ java Main
---ループを開始します---
0回目の処理です
1回目の処理です
2回目の処理です
3回目の処理です
4回目の処理です
5回目の処理です
6回目の処理です
7回目の処理です
8回目の処理です
---continueを実行します---
9回目の処理です
---ループを終了します---
こちらは、8回目の処理の後に「—continueを実行します—」が表示され、次の処理(9回目)に移っています!
このように、それぞれ挙動が異なるので、使い分けるようにしましょう!
まとめ

Javaのexitメソッドについて解説しました。
exitメソッドは、プログラムを完全に終了させたい場合に使います。
finallyブロックも実行しないといった特徴があるので、ぜひ使い方を覚えてプログラムを実装してみてください!
 
               
     
     
     
     
   
       
     
   
      
プログラムを終了させたい場合は exitメソッド を使う!
メソッドを終了させたい場合は return文 を使う!