我的代码出了什么问题?为什么我有错误?

时间:2012-07-21 23:27:52

标签: java syntax-error runtime-error

所以我使用这段代码对一个数字数组进行排序,但它给了我一个错误,我需要一个“}”。 我错过了一些“}”吗? 任何帮助将不胜感激!

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 个答案:

答案 0 :(得分:4)

您未能返回值。该方法被声明为返回double,但是你没有返回任何东西就会从方法的末尾掉下来。

答案 1 :(得分: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;
    }
}

答案 2 :(得分:0)

您声明方法“Median()”以返回double,但您不返回任何内容。