Java の missing return statement エラータイプの修正
メソッドで if、for、または while ループを使用すると、Java コンパイラが missing return statement エラーを報告する場合があります。この記事では、これが発生する理由とその対処方法について説明します。
Java で missing return statement エラーが発生するのはなぜですか
最も一般的な Java エラーの 1つは、missing return statement です。
コンパイル中に発生するエラーです。ステートメントが示すように、この問題は通常、プログラムに return ステートメントがないことが原因で発生します。
このエラーを生成する可能性のある参照用のプログラムを見てみましょう。
これは、引数として渡された数値が素数であるかどうかを判別した後、String 型変数を返すメソッドです。このメソッドは、if、else、および for ループを利用します。
このプログラムを注意深く見ると、if-else ループの最初のペアがあり、それぞれが String を返していることがわかります。else ループでは、for ループを実行し、if と else を使用して String を返します。
一見大丈夫そうです。しかし、注意深く調べた後、for ループが失敗した場合に else ステートメントが何も返さないことがわかりました。
言い換えると、コンパイラは、else ループ内の for ループが String を返すことを認識していません。それはあいまいさを生み出します。
for ループが実行されて型が返される場合でも、コンパイラは、何も返さない可能性があると想定する必要があります。したがって、コンパイラのこの混乱を解消するために、else メソッドは String 型を返す必要があります。
Java のドキュメントによると、return 型でメソッドを宣言する場合は、メソッドの最後に return ステートメントが必要です。それ以外の場合、コンパイラは return ステートメントがありませんというエラーを表示します。
このエラーは、メソッドの return ステートメントを誤って省略した場合にスローされます。これは、メソッドに return タイプがないか、void タイプを使用して宣言されていないためです。
public class TestError {
public static void main(String[] args) {
System.out.println(Check_Prime(10));
System.out.println(Check_Prime(5));
System.out.println(Check_Prime(2));
System.out.println(Check_Prime(1));
}
public static String Check_Prime(int number) {
int i;
if (number == 2) {
return "Prime";
} else {
if (number < 2) {
return "Not Prime";
} else {
for (i = 2; i <= number; i++) {
if (number % i == 0) {
return "Not Prime";
} else {
return "Prime";
}
}
}
}
}
}
Java の Missing Return Statement エラータイプの修正
public class TestError {
public static void main(String[] args) {
System.out.println(Check_Prime(10));
System.out.println(Check_Prime(5));
System.out.println(Check_Prime(2));
System.out.println(Check_Prime(1));
}
public static String Check_Prime(int number) {
int i;
int k = number / 2;
if (number == 2) {
return "Prime";
} else {
if (number < 2) {
return "Not Prime";
} else {
for (i = 2; i <= k; i++) {
if (number % i == 0) {
return "Not Prime";
} else {
return "Prime";
}
}
return "";
}
}
}
}
出力:
Not Prime
Prime
Prime
Not Prime
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn