简体   繁体   English

为什么我的方法没有返回任何东西?

[英]Why are my methods not returning anything?

I've written this code to do several calculations regarding arrays of characters, integers, and doubles.我编写这段代码是为了对 arrays 的字符、整数和双精度数进行一些计算。

static char minimum(char array[])
{   
    char min = 'z';
    int n = array.length;
    
  
    for (int i = 0; i < n-1; i++)
    {
        if (array[i] < min)
        {
            min = array[i];
        }
    }
   
    
    return min;
}

static int minimum(int array[])
{
    Arrays.sort(array);  
    return array[0];
}

static double minimum(double array[])
{
    int n = array.length;
    Arrays.sort(array);  
    return array[0
                 ];
}

static char maximum(char array[])
{
    
    char max = 'z';
    int n = array.length;
    
    
    for (int i = 0; i < n-1; i++)
        if (array[i] > max)
        {
            max = array[i];
        }
   
    
    return max;
}

static int maximum(int array[])
{
    int n = array.length;
    Arrays.sort(array);  
    return array[n - 1];
}

static double maximum(double array[])
{
    int n = array.length;
    Arrays.sort(array);  
    return array[n - 1];
}

static int minimumat(char array[])
{
    
    char min = 'z';
    int n = array.length;
    int minat = 0;
    

    for (int i = 0; i < n-1; i++)
    {
        if (array[i] < min)
        {
            min = array[i];
        }
    }
    
    
    for (int i = 0; i < n; i++)
    {
        if (array[i] == min)
        {
            i = minat;
        }
    }
   
    
    return minat;
}

static int minimumat(int array[])
{
    int n = array.length;
    int newarray[] = array;
    Arrays.sort(newarray);  
    int min = newarray[0];
    int minat = 0;
    for(int i = 0; i <= n; i++)
    {
        if(array[i] == min)
        {
            minat = i;
        }
    }
    return minat;
}

static int minimumat(double array[])
{
    int n = array.length;
    double newarray[] = array;
    Arrays.sort(newarray);  
    double min = newarray[0];
    int minat = 0;
    for(int i = 0; i <= n; i++)
    {
        if(array[i] == min)
        {
            minat = i;
        }
    }
    return minat;
}

static int maximumat(char array[])
{
    
    char max = 'A';
    int n = array.length;
    int maxat = 0;
    
    
    for (int i = 0; i < n; i++)
    {
        if (array[i] > max)
        {
            max = array[i];
        }
    }
    
    
    for (int i = 0; i < n; i++)
    {
        if (array[i] == max)
        {
            i = maxat;
        }
    }
   
    
    return maxat;
}

static int maximumat(int array[])
{
    int n = array.length;
    int newarray[] = array;
    Arrays.sort(newarray);  
    int max = newarray[0];
    int maxat = 0;
    for(int i = 0; i <= n; i++)
    {
        if(array[i] == max)
        {
            maxat = i;
        }
    }
    return maxat;
}

static int maximumat(double array[])
{
    int n = array.length;
    double newarray[] = array;
    Arrays.sort(newarray);  
    double max = newarray[n - 1];
    int maxat = 0;
    for(int i = 0; i <= n; i++)
    {
        if(array[i] == max)
        {
            maxat = i;
        }
    }
    return maxat;
}

static double average(int array[])
{
    
    int sum = 0;
    int n = array.length;
   
    
    for (int i = 0; i < array.length; i++)
    {
       sum +=  array[i];
    }
    
    double avg = sum / n;
    
    return avg;
}

static double average(double array[])
{
    
    double sum = 0;
    int n = array.length;
   
    
    for (int i = 0; i < array.length; i++)
    {
       sum += array[i];
    }
    
    double avg = sum / n;
    
    return avg;
}

I have also written some simple code to test these methods in another class.我也在另一个class中写了一些简单的代码来测试这些方法。

public static void main(String[] args)
    {
    char[] charArray = {'k', 'p', 'f', 'r', 'D', 'm'};
    double doubleArray[] = {5.43, 9.81, 5.37, 7.19, 2.86, 6.55, 2.37, 7.28};
    int intArray[] = {40, 7, 53, 34, 61, 70, 29, 49};

    ArrayTools ArrayTools = new ArrayTools();
    System.out.println(ArrayTools.minimum(charArray));
    
    
    System.out.println(ArrayTools.minimum(doubleArray));
    
    
    System.out.println(ArrayTools.minimum(intArray));
    
    
    System.out.println(ArrayTools.maximum(charArray));
    
    
    System.out.println(ArrayTools.maximum(doubleArray));
    
    
    System.out.println(ArrayTools.maximum(intArray));
    
    
    System.out.println(ArrayTools.minimumat(charArray));
    
    
    System.out.println(ArrayTools.minimumat(doubleArray));
    
    
    System.out.println(ArrayTools.minimumat(intArray));
    
    
    System.out.println(ArrayTools.maximumat(charArray));
    
    
    System.out.println(ArrayTools.maximumat(doubleArray));
    
    
    System.out.println(ArrayTools.maximumat(intArray));
    
    
    System.out.println(ArrayTools.average(intArray));
    
    
    System.out.println(ArrayTools.average(doubleArray));
}

} }

The code has worked properly for the "minimum" and "maximum" methods (not to be confused with the "minimumat" and "maximumat" methods).该代码适用于“最小”和“最大”方法(不要与“最小”和“最大”方法混淆)。 But the rest haven't printed anything.但是 rest 没有打印任何东西。

Here is the output:这是 output:

D 

2.37 

7 

z 

9.81 

70

2 problems I see in your code is-我在您的代码中看到的 2 个问题是 -

1 - In static int minimumat(char array[]) method you are resetting value of i. 1 - 在static int minimumat(char array[])方法中,您正在重置 i 的值。 It should be它应该是

minat = i;

and similarly maxat in other method- maximumat()和其他方法中的 maxat 类似 - maximumat()

2- You are looping from 0 to length (n), so you might get ArrayIndexOutOfBound on last index, so exclude the last one. 2-您正在从 0 循环到长度 (n),因此您可能会在最后一个索引上获得 ArrayIndexOutOfBound,因此排除最后一个。 It should be它应该是

for(int i = 0; i < n; i++) {

I've written this code to do several calculations regarding arrays of characters, integers, and doubles.我编写了这段代码来对字符、整数和双精度数组进行一些计算。

static char minimum(char array[])
{   
    char min = 'z';
    int n = array.length;
    
  
    for (int i = 0; i < n-1; i++)
    {
        if (array[i] < min)
        {
            min = array[i];
        }
    }
   
    
    return min;
}

static int minimum(int array[])
{
    Arrays.sort(array);  
    return array[0];
}

static double minimum(double array[])
{
    int n = array.length;
    Arrays.sort(array);  
    return array[0
                 ];
}

static char maximum(char array[])
{
    
    char max = 'z';
    int n = array.length;
    
    
    for (int i = 0; i < n-1; i++)
        if (array[i] > max)
        {
            max = array[i];
        }
   
    
    return max;
}

static int maximum(int array[])
{
    int n = array.length;
    Arrays.sort(array);  
    return array[n - 1];
}

static double maximum(double array[])
{
    int n = array.length;
    Arrays.sort(array);  
    return array[n - 1];
}

static int minimumat(char array[])
{
    
    char min = 'z';
    int n = array.length;
    int minat = 0;
    

    for (int i = 0; i < n-1; i++)
    {
        if (array[i] < min)
        {
            min = array[i];
        }
    }
    
    
    for (int i = 0; i < n; i++)
    {
        if (array[i] == min)
        {
            i = minat;
        }
    }
   
    
    return minat;
}

static int minimumat(int array[])
{
    int n = array.length;
    int newarray[] = array;
    Arrays.sort(newarray);  
    int min = newarray[0];
    int minat = 0;
    for(int i = 0; i <= n; i++)
    {
        if(array[i] == min)
        {
            minat = i;
        }
    }
    return minat;
}

static int minimumat(double array[])
{
    int n = array.length;
    double newarray[] = array;
    Arrays.sort(newarray);  
    double min = newarray[0];
    int minat = 0;
    for(int i = 0; i <= n; i++)
    {
        if(array[i] == min)
        {
            minat = i;
        }
    }
    return minat;
}

static int maximumat(char array[])
{
    
    char max = 'A';
    int n = array.length;
    int maxat = 0;
    
    
    for (int i = 0; i < n; i++)
    {
        if (array[i] > max)
        {
            max = array[i];
        }
    }
    
    
    for (int i = 0; i < n; i++)
    {
        if (array[i] == max)
        {
            i = maxat;
        }
    }
   
    
    return maxat;
}

static int maximumat(int array[])
{
    int n = array.length;
    int newarray[] = array;
    Arrays.sort(newarray);  
    int max = newarray[0];
    int maxat = 0;
    for(int i = 0; i <= n; i++)
    {
        if(array[i] == max)
        {
            maxat = i;
        }
    }
    return maxat;
}

static int maximumat(double array[])
{
    int n = array.length;
    double newarray[] = array;
    Arrays.sort(newarray);  
    double max = newarray[n - 1];
    int maxat = 0;
    for(int i = 0; i <= n; i++)
    {
        if(array[i] == max)
        {
            maxat = i;
        }
    }
    return maxat;
}

static double average(int array[])
{
    
    int sum = 0;
    int n = array.length;
   
    
    for (int i = 0; i < array.length; i++)
    {
       sum +=  array[i];
    }
    
    double avg = sum / n;
    
    return avg;
}

static double average(double array[])
{
    
    double sum = 0;
    int n = array.length;
   
    
    for (int i = 0; i < array.length; i++)
    {
       sum += array[i];
    }
    
    double avg = sum / n;
    
    return avg;
}

I have also written some simple code to test these methods in another class.我还编写了一些简单的代码来在另一个类中测试这些方法。

public static void main(String[] args)
    {
    char[] charArray = {'k', 'p', 'f', 'r', 'D', 'm'};
    double doubleArray[] = {5.43, 9.81, 5.37, 7.19, 2.86, 6.55, 2.37, 7.28};
    int intArray[] = {40, 7, 53, 34, 61, 70, 29, 49};

    ArrayTools ArrayTools = new ArrayTools();
    System.out.println(ArrayTools.minimum(charArray));
    
    
    System.out.println(ArrayTools.minimum(doubleArray));
    
    
    System.out.println(ArrayTools.minimum(intArray));
    
    
    System.out.println(ArrayTools.maximum(charArray));
    
    
    System.out.println(ArrayTools.maximum(doubleArray));
    
    
    System.out.println(ArrayTools.maximum(intArray));
    
    
    System.out.println(ArrayTools.minimumat(charArray));
    
    
    System.out.println(ArrayTools.minimumat(doubleArray));
    
    
    System.out.println(ArrayTools.minimumat(intArray));
    
    
    System.out.println(ArrayTools.maximumat(charArray));
    
    
    System.out.println(ArrayTools.maximumat(doubleArray));
    
    
    System.out.println(ArrayTools.maximumat(intArray));
    
    
    System.out.println(ArrayTools.average(intArray));
    
    
    System.out.println(ArrayTools.average(doubleArray));
}

} }

The code has worked properly for the "minimum" and "maximum" methods (not to be confused with the "minimumat" and "maximumat" methods).该代码对于“最小值”和“最大值”方法(不要与“最小值”和“最大值”方法混淆)正常工作。 But the rest haven't printed anything.但其余的没有打印任何东西。

Here is the output:这是输出:

D 

2.37 

7 

z 

9.81 

70

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM