2012-07-21 236 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; 
    } 
}