對於要重覆進行的指令,多數時間是可以透過for迴圈
來達到自己的目的,不過for迴圈
只能在重複執行命令的時候(好比:重複印出相同的字串)比較能用,那如果說是相同的運算式,只不過參數改變了呢?今天這篇文章就是針對這個情況而寫的,我們其實可以透過建立「方法」來把重複的運算式集合起來,然後透過呼叫這個方法來達成目的,那麼,廢話不多說,進入正題
先簡單舉個情境,如果說今天我是一個賣場的倉庫管理員,那麼我就會需要知道倉庫裡面有存放哪些東西,而且絕對是經過分類擺放的各式物品,先取三個種類的物品:水果、冷凍食品與肉品,分別如下:
1.水果(fruits):香蕉、芭樂、鳳梨、火龍果、蘋果
2.冷凍食品(freezed_food):冷凍水餃、冰棒、冰淇淋、冷凍三色蔬菜、冷凍湯品
3.肉品(Meats):羊肉、豬肉、牛肉、雞肉、鵝肉
就一如往常用Java來作範例吧:
package Lin.JCN.iTathlon
public class printList{
public satatic void main(String args[]){
String fruits[] = {"香蕉","芭樂","鳳梨","火龍果","蘋果"};
String freezed_food[] = {"冷凍水餃","冰棒","冰淇淋","冷凍三色蔬菜","冷凍湯品"};
String meats[] = {"羊肉","豬肉","牛肉","雞肉","鵝肉"};
for(int i=0;i<fruits.length;i++){
if(i==fruits.length-1){
System.out.println(fruits[i]);
}else{
System.out.print(fruits[i]+" ");
}
}
for(int i=0;i<freezed_food.length;i++){
if(i==freezed_food.length-1){
System.out.println(freezed_food[i]);
}else{
System.out.print(freezed_food[i]+" ");
}
}
for(int i=0;i<meats.length;i++){
if(i==meats.length-1){
System.out.println(meats[i]);
}else{
System.out.print(meats[i]+" ");
}
}
}
}
如果我必須特地為每一個陣列都寫一個for迴圈
來把所有資料都印出來的話,三個陣列看起來還好 ,或許用Ctrl+c / Ctrl+v就可以解決,但是當今天有超過十個以上的分類,更不確定之後是不是會需要新增其他類別的陣列的話,這樣就是一個搞死工程師的狀態;所以,這個時候透過建立方法來把一直重複的For迴圈
獨立出來變成一個方法,這樣也就比較方便啦,那就來試試看吧:
package Lin.JCNiTathlon
public class printList{
public PrintList() {
//在java必須先建立一個空方法,才能做後續的呼叫
}
public void Printer(String items[]) {
//透過建立這個"Printer"方法,並且在括號裡面放入要套入的參數,這樣就可以省去不少時間
for(int i=0;i<items.length;i++){
//所以就在這裡提出for迴圈的部分
if(i==items.length-1){
System.out.println(items[i]);
}else{
System.out.print(items[i]+" ");
}
}
}
public satatic void main(String args[]){
PrintList pl = new PrintList();
//建立空方法,宣告參數,後續就可以做為呼叫方法的建構值
String fruits[] = {"香蕉","芭樂","鳳梨","火龍果","蘋果"};
String freezed_food[] = {"冷凍水餃","冰棒","冰淇淋","冷凍三色蔬菜","冷凍湯品"};
String meats[] = {"羊肉","豬肉","牛肉","雞肉","鵝肉"};
pl.Printer(fruits);
pl.Printer(freezed_food);
pl.Printer(meats);
//上面這三行就是呼叫方法的句型啦
}
}
這樣看下來,我就覺得在Java裡面真的是很多複雜的結構,換做Python就瞬間讓我變得很懶真的是很人性化,那就來看看在Python的實際操作吧:
def printlist(type): #這就是在Python裡面建立方法的宣告式
print(type)
#注意,在Python裡面是透過每一行的對其位置來判斷是否為同一個方法要做的內容
fruits = ["香蕉","芭樂","鳳梨","火龍果","蘋果"]
freezed_food = ["冷凍水餃","冰棒","冰淇淋","冷凍三色蔬菜","冷凍湯品"]
meats = ["羊肉","豬肉","牛肉","雞肉","鵝肉"]
printlist(fruits)
printlist(freezed_food)
printlist(meats)
而輸出結果就像下方所示:
['香蕉', '芭樂', '鳳梨', '火龍果', '蘋果']
['冷凍水餃', '冰棒', '冰淇淋', '冷凍三色蔬菜', '冷凍湯品']
['羊肉', '豬肉', '牛肉', '雞肉', '鵝肉']
真的是省了不少力氣呢030,也在這裡先建一個七天達成的里程碑~~~~~