パス検索チュートリアル を見て、return
メソッド(クラスvoid
、126行目)内にPathTest
ステートメントがあることに気付きました。
if ((x < 0) || (y < 0) || (x >= map.getWidthInTiles()) || (y >= map.getHeightInTiles())) {
return;
}
私はJavaの初心者です。なぜそこにあるのか教えてもらえますか?私が知る限り、voidメソッド内のreturn
は許可されていません。
その時点でメソッドを終了します。 return
が実行されると、残りのコードは実行されません。
例えば。
public void test(int n) {
if (n == 1) {
return;
}
else if (n == 2) {
doStuff();
return;
}
doOtherStuff();
}
コンパイラは、一部のコードに到達できないことを通知するのに十分なほど賢いことに注意してください。
if (n == 3) {
return;
youWillGetAnError(); //compiler error here
}
Voidメソッドにreturn
を含めることはできますが、単に値を返す(return 5;
)、それがvoidメソッドと呼ばれる理由です。一部の人々は、returnステートメントでvoidメソッドを常に明示的に終了しますが、必須ではありません。 canは、関数を早期に終了するために使用されますが、
void someFunct(int arg)
{
if (arg == 0)
{
//Leave because this is a bad value
return;
}
//Otherwise, do something
}
キーワードは、呼び出しスタックからフレームをポップして、関数呼び出しに続く行にコントロールを返します。
Java language specification は、メソッドがvoidを返す場合、式なしで返すことができることを示しています。
戻り値がなく、制御が呼び出し元メソッドに戻されるため、何も返さないことを除いて、指定されたパラメーターを持つ関数の戻り値と同じように機能します。
関数を終了し、何も返しません。
何かのようなもの return 1;
は整数1を返すため、正しくありません。
条件付きでリストに追加するこの例を参照してください。 「return」という単語がないと、すべてのifが実行され、ArrayListに追加されます。
Arraylist<String> list = new ArrayList<>();
public void addingToTheList() {
if(isSunday()) {
list.add("Pray today")
return;
}
if(isMonday()) {
list.add("Work today"
return;
}
if(isTuesday()) {
list.add("Tr today")
return;
}
}