如果循环in for循环方法不在main中打印

时间:2017-12-01 17:59:44

标签: java for-loop methods

import java.util.*;

public class userInputDoubleArray
{
   private static double getAverage(double[] nums){
      double sum = 0;
      for (int y= 0; y < nums.length; y++)
      {
         sum= sum + nums[y];
      }    
      return sum;
   }

   private static void showLargerValues(double[] nums, double avg)
   {  
      for (int z= 0; z < nums.length; z++)
      {
         if (nums[z] > avg)
         {
            System.out.print("The numbers higher than average are     " + nums[z] + "     ");
         }
      }    

   }

   public static void main(String[] args)
   {
      double[] nums = new double[10];
      Scanner inp= new Scanner (System.in);

      for (int i= 0; i < nums.length; i++)
      { 
         System.out.println("Please enter a double.");
         nums[i]= inp.nextDouble();
      }

      double average = getAverage(nums);

      System.out.println("The average is " + average);
      showLargerValues(nums, average);

   }
}

是的,所以我试图打印出数字&gt;比平均水平。我的问题是,虽然它编译,似乎for / if showLargerValues方法不打印数字。

3 个答案:

答案 0 :(得分:2)

您只是总结了值,但是您错过了除以数组长度的除法:

private static double getAverage(double[] nums){
    double sum = 0;
    for (int y= 0; y < nums.length; y++)
    {
        sum= sum + nums[y];
    }    
    return sum / nums.length;
}

答案 1 :(得分:1)

你会为此而踢自己。

private static double getAverage(double[] nums){
      double sum = 0;
      for (int y= 0; y < nums.length; y++)
      {
         sum= sum + nums[y];
      }    
      return sum;
         }

你永远不会将总和除以这里的长度。 &#34;平均&#34;实际上是总和。

答案 2 :(得分:1)

原因是,你的方法getAverage()没有返回平均值,它返回总和。

更换线路
return sum;


return (sum / nums.length);