Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

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で実行された処理です!
ポテパンダの一言メモ

プログラムを終了させたい場合は exitメソッド を使う!
メソッドを終了させたい場合は return文 を使う!

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ブロックも実行しないといった特徴があるので、ぜひ使い方を覚えてプログラムを実装してみてください!

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。