2013-10-22 127 views
0

我想從主方法參數列表中創建一個Boat對象數組,然後將args數組中給定的名稱分配給使用.name的船。什麼是格式化的正確方法?格式化Java for循環

public static void main(String[] args) { 
    for(int i = 0; i < args.length; i++){ 
     Boat args[i] = new Boat(); 
     args[i].name = args[i]; 
    } 
} 
+0

這是沒有意義的。 'args'定義在哪裏? 'name'的類型是什麼? –

+2

您錯誤地重複使用了'args'。它是傳入'main'的'String'數組;你需要一個單獨的'Boat boats [] = new Boat [args.length];'。 – chrylis

回答

3
Boat boat = new Boat(); 
boat.name = args[i]; 
// and then do something with the Boat, I guess... 
2

當你

for(int i=0; i<args.length; i++) { Boat 
    args[i] = new Boat(); 

你正在運行到範圍的問題。您需要更改您的Boat數組的名稱並在循環外聲明它(因此它只創建一次)。

Boat armada[args.length]; 
for(int i = 0; i < args.length; ++i) { 
    armada[i] = new Boat(); 
    armada[i].name = args[i]; 
} 
+0

不正確;你有你的塊範圍規則裏面出來。 – chrylis

+0

而SE仍然不讓我改變我的投票。我們走了。 – chrylis

1
public static void main(String[] args) { 
    Boat[] boats = new Boat[args.length]; 
    for (int i=0; i< args.length; i++) { 
    boats[i] = new Boat(); 
    boats[i].name = args[i]; 
    } 
} 

我做了一個假設,即你Boat類有一個public場稱爲name

0

首先,你需要創建船

Boat[] boats = new Boat[args.length]; 

的陣列。然後,遍歷參數傳遞給獲得的名稱,每個名稱,創建一個新船的名稱,並將其保存在一個位置船陣列

for(int i = 0; i < args.length; i++){ 
    Boat boat = new Boat(); //Create new boat 
    boat.name = args[i]; //Give the name to the new boat 
    boats[i] = boat; //And save it into the array 
} 
0

Add a new constructor which accepts name as argument and try the following


     Boat[] boat = new Boat[args.length]; 
      for (int iter = 0; iter < args.length; iter++) { 
       boat[iter] = new Boat(args[iter]); 
     }