2012-05-14 19 views
-1

我試圖打印出我所有的數組元素,並將它們自己添加到索引中,因爲我已經想通了。我不知道如何自動化它。它有效,但它可以更好。如何儘可能自動化

public class homeworkArrays 
{ 

    public static void main(String[] args) 
    { 
     int[] myArray = {6, 7, 2, 1, 10, 34}; 
     int blank = addByIndex(myArray); 
    } 

    public static int addByIndex(int[] myArray) 
    { 
     for(int i = 0; i < myArray.length; i++) 
     { 
      System.out.println(i + " - " + myArray[i]); 

     } 

      myArray[0] = myArray[0] + myArray[0]; 
      System.out.println("0 is now " + myArray[0]); 
      myArray[1] = myArray[1] + myArray[1]; 
      System.out.println("1 is now " + myArray[1]); 
      myArray[2] = myArray[2] + myArray[2]; 
      System.out.println("2 is now " + myArray[2]); 
      myArray[3] = myArray[3] + myArray[3]; 
      System.out.println("3 is now " + myArray[3]); 
      myArray[4] = myArray[4] + myArray[4]; 
      System.out.println("4 is now " + myArray[4]); 
      myArray[5] = myArray[5] + myArray[5]; 
      System.out.println("5 is now " + myArray[5]); 


    int i = 0; 
    return myArray[i]; 
    } 
} 
+1

您是否考慮過簡單的for-loop? –

+0

你說「加入自己的指數」,但你所有的價值翻倍?根據輸入,輸出應該是:6,8,4,4,14,39 ?? – Deco

+0

德科,你的輸出正確。這正是我想要實現的。 –

回答

3

做到在循環:

for(int i = 0; i < myArray.length; i++) 
{ 
    System.out.println(i + " - " + myArray[i]); 
    myArray[i] = myArray[i] * 2; 
    System.out.println(i + " after multiplication - " + myArray[i]); 
} 

有什麼理由不說清楚的是,部分:

int i = 0; 
return myArray[i]; 

那你嘗試在實現?

+0

...我只是交換循環中的兩個語句。我看起來像「壞孩子」首先進行計算,然後打印出來。 –

+1

@JacoVanNiekerk - 有道理:) – MByD

+0

我正在嘗試從數組中輸出我的整數以證明它正在工作。我其實不需要它。 –

2

本雅明做是正確的,但我會建議

myArray[i] += myArray[i]; 

的整數乘法具有比簡單增加更多的開銷。

+0

微觀優化? –

+0

只是一個後想到沒有很大的後果..我知道! :p – WickeD

+0

@WickeD - 它可能會更快,可能會寫得更短,我只是認爲「乘以價值」的聲音比「將價值增加到自身」更精確 – MByD

1

我不知道如果我得到你的問題的權利,但試試這個.....

public static int addByIndex(int[] myArray) 
{ 
    for(int i = 0; i < myArray.length; i++) 
    { 
     System.out.println(i + " - " + myArray[i]); 
     myArray[i] += myArray[i]; 
     System.out.println(i " is now " + myArray[i]); 
    } 
    int i = 0; 
    return myArray[i]; 
} 
0

此刻你加倍的值,和當前的回答也太加倍值。您的問題顯示「將自己添加到其索引中」,這意味着如果您在數組索引2中有號碼4,則您的輸出應爲6

for (int i = 0; i < myArray.length; i++) 
    { 
     myArray[i] += i; 
     System.out.println(myArray[i]); 
    } 

上面的代碼將獲取數組中的每個元素並將當前索引添加到它 - 然後打印該值。

+0

我認爲他的意思是加倍值只是在描述部分出錯。 – WickeD