iT邦幫忙

2021 iThome 鐵人賽

DAY 11
0
自我挑戰組

Java SE系列 第 11

Day11:伸縮自如的

在我們定義method時,若需要有外來的數值input進來運算,就會定義parameter:

int sum (int num01, int num02){
    return num01 + num02;
}

上面的範例可以傳入兩個int,執行後會返回一個相加後的int。

但如果我們不一定只有2個int要做加總該怎麼辦呢?難道要分別定義可以傳入3個int引數、傳入4個int引數、傳入5個int引數......這樣嗎?

int sum (int num01, int num02, int num03){
    return num01 + num02 + num03;
}
int sum (int num01, int num02, int num03, int num04){
    return num01 + num02 + num03 + num04;
}
int sum (int num01, int num02, int num03, int num04, int num05){
    return num01 + num02 + num03 + num04 + num05;
}
......永無止境......

為了解決這樣的需求,Java提供了不定長度引數(Variable-length Argument)這樣的用法:

int sum (int... nums){
    int result = 0;  
    for(int num : nums){
        result += num;    
    }
    return result; 
}

只要定義了不定程度引數int… nums,代表我們可以在叫用這個方法時,放入任意數量的int型態引數。從以上的操作可以看出,其實不定長度引數本質就是一個陣列。

不定長度引數還有2個需要注意的規則:

  1. 一個method所能傳入的引數中,只能定義一個不定長度引數
  2. 當method有其他引數時,不定長度引數必須要放在最後面

其實以上這兩個規則都有其理由,大家可以想想看,若不定長度引數有兩個時,會發生甚麼事情呢?抑或當仍有其他引數要傳入時,不定長度引數不放在最後面會發生甚麼事情?


上一篇
Day10:蛋糕上的櫻桃
下一篇
Day12:有問題要主動提出來
系列文
Java SE30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言