1. returnPernyataan

Pikirkan Anda telah mempelajari semua tentang metode Java? Apa pun yang Anda pikir Anda ketahui, Anda masih belum mengetahui setengahnya.

Mari kita mulai dengan sesuatu yang sederhana. Misalnya, Java memiliki pernyataan return yang memungkinkan Anda langsung menghentikan metode yang memanggilnya. Inilah pernyataannya:

return;

Sederhana: kata soliter returndiikuti titik koma. Segera setelah program mengeksekusi pernyataan ini, metode saat ini segera keluar, dan pemanggilan berlanjut.

Jika returndipanggil dalam mainmetode, maka mainmetode tersebut akan segera berakhir, dan dengan itu seluruh program.

Contoh:

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);
   }
}


Metode fill mengisi bagian dari array yang diteruskan dengan value.
Bagian dari array yang akan diisi ditentukan oleh indeks from dan to.
Jika from kurang dari 0atau to lebih besar dari panjang array, maka metode akan segera berakhir.

Program di atas memiliki fillmetode yang mengisi array yang diteruskan dengan value. Itu tidak mengisi seluruh array, hanya bagian yang ditentukan oleh indeks fromdan to.

Di awal metode fill , nilai yang diteruskan diperiksa untuk memastikan validitasnya. Jika fromkurang dari 0, atau to lebih besar dari panjang array, maka fillmetode akan segera dihentikan (mengeksekusi returnpernyataan).

Pernyataan ini returnberguna: hampir setiap metode di Java memilikinya, dan inilah alasannya.



2. Metode dengan hasil,void

Ingat kita pernah mengetahui bahwa ada pernyataan, dan ada ekspresi . Ekspresi, tidak seperti pernyataan, memiliki nilai yang dapat digunakan di suatu tempat.

Dan, di Java, metode dapat memiliki nilai . Dan ini adalah berita yang sangat bagus: metode tidak hanya dapat melakukan sesuatu berdasarkan parameter input, tetapi juga, misalnya, mengevaluasi sesuatu dan mengembalikan hasil perhitungan .

Omong-omong, Anda telah menemukan metode seperti itu:

double delta = Math.abs(d1 - d2);
Metode abs()mengembalikan ganda
Scanner console = new Scanner(System.in);
int x = console.nextInt();

Metode nextInt()mengembalikan anint
String str = "Hello";
String s2 = str.toUpperCase();

Metode toUpperCase()mengembalikan aString
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

Metode copyOf()mengembalikan anint[]

Setiap metode hanya dapat mengembalikan satu nilai dari satu jenis yang telah ditentukan. Jenis pengembalian ditentukan saat metode dideklarasikan:

public static Type name(parameters)
{
  method body
}

Di mana name nama metode, parameters daftar parameter metode, dan type jenis hasil yang dikembalikan metode.

Untuk metode yang tidak menghasilkan apa-apa, ada tipe placeholder khusus: void.

Apakah Anda menulis metode Anda sendiri dan tidak ingin mengembalikan apa pun ke metode pemanggilan? Nyatakan saja tipe metode sebagai void, dan masalahnya selesai. Ada juga banyak metode seperti ini di Jawa.


3. Mengembalikan hasil

Kami baru saja mengetahui cara mendeklarasikan metode yang mengembalikan hasil perhitungan, tetapi bagaimana kami menghasilkan hasil ini dalam metode itu sendiri?

Pernyataan itu returnmembantu kita di sini sekali lagi. Melewati hasil dari suatu metode terlihat seperti ini:

return value;

Di mana returnpernyataan yang mengakhiri metode dengan segera. Dan value adalah nilai yang dikembalikan metode ke metode pemanggilan saat keluar. Jenis valueharus cocok dengan typeyang ditentukan dalam deklarasi metode.

Contoh 1. Metode ini menghitung minimal dua angka:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
Metode mengembalikan minimum dua angka.

Jika a < b
kembali a
Jika tidak
kembalib

Contoh 2. Metode ini menggandakan string yang diteruskan berkali n-kali:

String multiple(String str, int times)
{
   String result = "";
   for (int i = 0; i < times; i++)
     result = result + " "+ str;
   return result;
}
Metode ini membutuhkan dua parameter — string dan berapa kali string harus diulang.
String kosong dibuat untuk hasil di masa mendatang.

Dalam satu lingkaran dengan timesiterasi, spasi dan strstring ditambahkan ke resultstring.

String resultdikembalikan sebagai hasil dari metode.

Contoh 3: Metode menghitung maksimum dua angka menggunakan operator ternary:

int max(int a, int b)
{
   return (a > b ? a : b);
}
Metode mengembalikan maksimum dua angka.

kembali (jika a > b, maka a, jika tidak b)