1.return声明

Java メソッドについてはすでにすべて学習したと思いますか? 何を知っていると思っていても、まだ半分もわかっていません。

簡単なことから始めましょう。たとえば、Java には、それを呼び出すメソッドを即座に終了できるreturnステートメントがあります。声明は次のとおりです。

return;

やり方は簡単です。単独の単語のreturn後にセミコロンが続きます。プログラムがこのステートメントを実行するとすぐに、現在のメソッドが終了し、呼び出しが続行されます。

returnメソッド内で が呼び出された場合mainmainメソッドは直ちに終了し、それとともにプログラム全体も終了します。

例:

class Solution
{
   public static void fill(int[] data, int from, int to, int value)
   {


     if (from < 0 || to > data.length)
       return;

     for (int i = from; i < to; i++)
     {
       data[i] = value;
     }
   }

   public static void main(String[] args)
   {
     int[] months = {1, 2, 3, 4, 5, 6, 7, 8 ,9, 10, 11, 12};
     fill(months, 2, 10, 8);
   }
}


このfill メソッドは、渡された配列の一部を で埋めますvalue
配列の埋められる部分は、インデックスfrom とによって定義されますto
が 配列の長さより from 小さい場合0、または配列の長さより大きい場合、メソッドはただちに終了します。to

上記のプログラムには、fill渡された配列を で埋めるメソッドがありますvaluefrom配列全体を埋めるのではなく、インデックスとで指定された部分のみを埋めますto

メソッドの開始時にfill 、渡された値がチェックされ、それらが有効であることが確認されます。fromが0 より小さい場合、または が配列の長さより大きい場合、to メソッドはfill直ちに終了します (returnステートメントが実行されます)。

このreturnステートメントは便利です。実際、Java のすべてのメソッドにはこれがあり、その理由は次のとおりです。



2. 結果を伴うメソッド、void

かつて、ステートメントと式があることを理解したことがあります。式はステートメントとは異なり、どこかで使用できる値を持ちます。

また、Java では、メソッドはを持つことができます。これは非常に良いニュースです。メソッドは入力パラメータに基づいて何かを実行できるだけでなく、たとえば何かを評価して計算結果を返すこともできます

ちなみに、あなたはすでにそのような方法に遭遇しています:

double delta = Math.abs(d1 - d2);
メソッドabs()は double を返します
Scanner console = new Scanner(System.in);
int x = console.nextInt();

メソッドnextInt()は、int
String str = "Hello";
String s2 = str.toUpperCase();

メソッドtoUpperCase()は、String
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

メソッドcopyOf()は、int[]

各メソッドは、あらかじめ決められた 1 つの型の 1 つの値のみを返すことができます。戻り値の型は、メソッドの宣言時に決定されます。

public static Type name(parameters)
{
  method body
}

ここでname 、 はメソッドの名前、parameters はメソッドパラメータのリスト、type はメソッドが返す結果の型です。

何も返さないメソッドの場合は、特別なプレースホルダー タイプがあります: void

独自のメソッドを作成していて、呼び出し元のメソッドには何も返したくないですか? メソッドの型を として宣言するだけでvoid問題は解決します。Java にもこのようなメソッドがたくさんあります。


3. 結果を返す

計算の結果を返すメソッドを宣言する方法を理解しましたが、メソッド自体でこの結果をどのように生成するのでしょうか?

このreturn声明はここでもまた私たちを助けてくれます。メソッドから結果を渡す場合は次のようになります。

return value;

ここで、returnはメソッドを直ちに終了するステートメントです。そして、value メソッドが終了するときに呼び出し元のメソッドに返す値です。の型はメソッド宣言で指定されたvalueものと一致する必要があります。type

例 1. このメソッドは 2 つの数値の最小値を計算します。

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
このメソッドは 2 つの数値の最小値を返します。 戻る

場合は戻る、 そうでない場合は 戻るa < b
a

b

例 2. メソッドは、渡された文字列をn何度も複製します。

String multiple(String str, int times)
{
   String result = "";
   for (int i = 0; i < times; i++)
     result = result + " "+ str;
   return result;
}
このメソッドは、文字列とその文字列を繰り返す回数という 2 つのパラメータを受け取ります。
将来の結果のために空の文字列が作成されます。

反復のあるループではtimes、文字列にスペースとstr文字列が追加されますresult

文字列はresultメソッドの結果として返されます。

例 3: このメソッドは、三項演算子を使用して 2 つの数値の最大値を計算します。

int max(int a, int b)
{
   return (a > b ? a : b);
}
このメソッドは最大 2 つの数値を返します。

return (if a > b、 then a、それ以外の場合b)