一、return聲明

認為您已經完全了解了 Java 方法?無論您認為自己知道什麼,您仍然不知道其中的一半。

讓我們從簡單的事情開始。例如,Java 有一個return語句,可以讓您立即終止調用它的方法。這是聲明:

return;

很簡單:單獨的單詞return後跟分號。程序一執行這條語句,當前方法立即退出,繼續調用。

如果在方法return中被調用main,那麼該main方法將立即結束,整個程序也會隨之結束。

例子:

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 小於0to 大於數組的長度,則該方法立即終止。

上面的程序有一個fill方法,用 填充傳遞給它的數組valuefrom它不會填充整個數組,僅填充由索引和指定的部分to

在該方法的開頭fill ,檢查傳遞的值以確保它們有效。如果from小於 0,或者如果to 大於數組的長度,則該fill方法立即終止(執行一條return語句)。

return句話很有用:實際上 Java 中的每個方法都有一個,這就是原因。



2. 有結果的方法,void

請記住,我們曾經發現有語句,也有表達式。與語句不同,表達式具有可以在某處使用的值。

而且,在 Java 中,方法可以有一個。這是一個非常好的消息:方法不僅能夠根據輸入參數做一些事情,而且,例如,評估一些事情並返回計算結果

順便說一句,你已經遇到過這樣的方法:

double delta = Math.abs(d1 - d2);
abs()方法返回一個雙
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[]

每個方法只能返回一種預定類型的一個值。返回類型在聲明方法時確定:

public static Type name(parameters)
{
  method body
}

其中name 是方法名,parameters 是方法參數列表,type 是方法返回結果的類型。

對於什麼都不返回的方法,有一個特殊的佔位符類型:void

您是否正在編寫自己的方法並且不想向調用方法返回任何內容?只需將方法的類型聲明為void,問題就解決了。Java中也有很多這樣的方法。


3.返回結果

我們剛剛想出瞭如何聲明一個返回計算結果的方法,但是我們如何在方法本身中產生這個結果呢?

return聲明再次幫助我們走出困境。從方法傳遞結果如下所示:

return value;

return立即終止方法的語句在哪裡。Andvalue 是方法退出時返回給調用方法的值。的類型value必須與type方法聲明中指定的相匹配。

示例 1. 該方法計算兩個數中的最小值:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
該方法返回兩個數字中的最小值。

如果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;
}
該方法有兩個參數——一個字符串和該字符串應重複的次數。
為將來的結果創建一個空字符串。

在具有迭代的循環中times,將空格和str字符串添加到result字符串中。

該字符串result作為該方法的結果返回。

示例 3:該方法使用三元運算符計算兩個數字的最大值:

int max(int a, int b)
{
   return (a > b ? a : b);
}
該方法返回兩個數字中的最大值。

返回(如果a > b,則a,否則b