2012-07-21 136 views
-5

所以我使用這段代碼來排序數組,但它給了我一個錯誤,我需要一個「}」。 我錯過了一些「}」? 任何幫助,將不勝感激!我的代碼有什麼問題?爲什麼我有錯誤?

double Median() 
{ 
    int k,Hide; 

    boolean IsThereASwap; 
    IsThereASwap = false; 

    while(IsThereASwap == false) 
    { 
     for (k = 0 ; k < TheArrayAssingment.length - 1; k++) 
     { 
      if(TheArrayAssingment[k] > TheArrayAssingment[k+1]) 
      { 
       Hide = TheArrayAssingment[k+1]; 
       TheArrayAssingment[k+1] = TheArrayAssingment[k]; 
       TheArrayAssingment[k] = Hide; 
       IsThereASwap = true; 
      } 
     } 
     if (IsThereASwap == true) 
     { 
      IsThereASwap = false; 
     } 
     else 
     { 
      IsThereASwap = true; 
     } 

    } 
} 
+3

嗯......什麼行就抱怨? – Mysticial 2012-07-21 23:29:10

+0

此外,請儘量避免將選項卡粘貼到代碼塊中。他們傾向於搞亂格式。 – Mysticial 2012-07-21 23:31:08

+0

'!IsThereASwap'和'IsThereASwap =!IsThereASwap' ...但是可以考慮使用普通的Java命名約定。並更一致地縮進。但沒有其他代碼,很難說。 – 2012-07-21 23:31:29

回答

4

您無法返回值。該方法被聲明返回double,但是你沒有返回任何東西就掉到了方法的結尾。

0

你聲明方法「Median()」返回一個double,但是你不返回任何東西。

3

我看到你的代碼有太多問題來打擾你回答你的問題。

從學習並遵循Sun Java編碼標準開始。

一個好的IDE將會出現錯誤,如不匹配的括號和未能將值返回到過去的錯誤。試試IntelliJ;這是最好的。

這將運行得更好比你:

package cruft; 

import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.Collections; 
import java.util.List; 

/** 
* StatisticsUtil has statistics utility methods 
* @author Michael 
* @link 
* @since 7/21/12 7:30 PM 
*/ 
public class StatisticsUtil { 

    public static void main(String[] args) { 
     List<Double> values = new ArrayList<>(); 
     for (String arg : args) { 
      values.add(Double.valueOf(arg)); 
     } 
     System.out.println(String.format("median: %10.4f", getMedian(values))); 
    } 

    public static double getMedian(List<Double> values) { 
     double median = 0.0; 
     if (values != null) { 
      int numValues = values.size(); 
      if (numValues > 0) { 
       Collections.sort(values); 
       if ((numValues%2) == 0) { 
        median = (values.get((numValues/2)-1)+values.get(numValues/2))/2.0; 
       } else { 
        median = values.get(numValues/2); 
       } 
      } 
     } 
     return median; 
    } 

    public static double getMedian(double [] values) { 
     double median = 0.0; 
     if (values != null) { 
      int numValues = values.length; 
      if (numValues > 0) { 
       Arrays.sort(values); 
       if ((numValues%2) == 0) { 
        median = (values[(numValues/2)-1]+values[numValues/2])/2.0; 
       } else { 
        median = values[numValues/2]; 
       } 
      } 
     } 
     return median; 
    } 
}