Java のSystemクラスには、System を処理するためのフィールドとメソッドが含まれています。そのうちの 1 つは、現在実行中のプログラム、つまり JVM インスタンスを終了する必要がある場合に Java 言語で使用されるSystem.exit ()メソッドです。exit メソッドの下に挿入された行は到達できず、実行されません。
ステータスとして 0 を使用したため、ターミナルの出力には終了コードが表示されませんでした。ゼロは正常に終了したことを示すため、終了コードを出力する必要はありません。そこで、次の例ではステータスとして正の整数を使用してみましょう。この例では、0 から 10 までの乱数を生成するループを作成します。生成された数値が 2、3、または 7 の場合、アプリケーションを終了する必要があり、どの数値が終了の原因となったかを出力する必要があります。以下のコードを参照してください。
ご覧のとおり、3 番によりアプリケーションが異常終了します。次に、ステータス コードを効果的に使用する方法を見てみましょう。
System.exit() メソッドの構文
System.exit()メソッドの構文は次のとおりです。
public void static(int status)
したがって、これが静的メソッドであることがわかります。実際には、 Systemクラスのメソッドはすべて静的メソッドです。exit ()メソッドは引数として整数を受け取り、何も返しません。したがって、exit メソッドをSystem.exit(i)として呼び出します(i は整数)。この整数は「終了ステータス」と呼ばれ、ゼロまたはゼロ以外の要素にすることができます。ステータスが 0 — exit(0)の場合、プログラムは正常に終了します。ゼロ以外のステータス — exit(1) は、 JVM の異常終了を示します。
System.exit() メソッドの例
ステータスがゼロおよびゼロ以外の整数であるexit()メソッドの 2 つの簡単な例を見てみましょう。最初の例では、色の配列に対するループがあります。ループが「緑」になったら、アプリケーションを終了する必要があります。
import java.lang.*;
class Main {
public static void main(String[] args) {
String colors[]= {"red","blue","green","black","orange"};
for(int i=0;i<colors.length;i++) {
System.out.println("Color is "+colors[i]);
if(colors[i].equals("green")) {
System.out.println("JVM will be terminated after this line");
System.exit(0);
}
}
}
}
次の出力が表示されます。
import java.lang.*;
import java.util.Random;
class Main {
public static void main(String[] args) {
System.out.println("program will be terminated when values are 2, 3, or 7");
int i;
Random number=new Random();
while(true){
i = number.nextInt(11);
System.out.println("Random Number is "+i);
if(i==2||i==3||i==7){
System.out.println("Value is "+ i + " your program will be terminated now");
System.exit(i);
}
}
}
}
コードを実行すると、次の出力が得られました。
GO TO FULL VERSION