作為 Codegym 大學課程一部分的導師授課片段。報名參加完整課程。


“又是你,阿米戈。嗯,你好。”

“迪亞哥,你好像不太高興見到我?”

“我的印像是,您認為您已經掌握了有關 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方法,用 填充傳遞給它的數組value。它不會填充整個數組,只填充索引from和指定的部分to

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

“明白了。這就是這句話的全部作用嗎?”

“實際上,該return語句比你想像的更有用。它非常有用,幾乎在 Java 中的每個方法中都可以找到它。現在我將帶領你了解為什麼會這樣。

有結果的方法,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 有很多這樣的方法。

返回結果

“我想出瞭如何聲明一個返回計算/工作結果的方法。我如何從方法本身返回結果?”

“這是一個有效的問題。該return聲明再次幫助我們解決了這個問題。從方法傳遞結果如下所示:

return value;

"該return語句將立即終止該方法。並且value是該方法在退出時應返回給調用方法的內容。的類型必須與方法聲明中指定的相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添加到 string result
該字符串result作為該方法的結果返回。

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

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

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

“太棒了。方法是我的新超能力!”

“只有你在動手任務中練習得足夠多。一遍又一遍。”