Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要降雨统计程序的快速帮助吗_Java_Loops_For Loop_While Loop - Fatal编程技术网

Java 需要降雨统计程序的快速帮助吗

Java 需要降雨统计程序的快速帮助吗,java,loops,for-loop,while-loop,Java,Loops,For Loop,While Loop,基本上,我在编写这个程序时经历了一段相当艰难的时间。这个程序的目的是询问用户他们希望看到多少年的数据,并基于这些输入,即显示多少组12个月的随机双降雨量值 如果用户输入3年,则输出应该是这样的: 输入年数:3 第一年的降雨量为 第1个月的降雨量为4.16 第2个月的降雨量为6.85 第3个月的降雨量为1.28 第4个月的降雨量为1.66 第5个月的降雨量为3.06 第6个月降雨量为4.62 第7个月降雨量为5.69 第8个月的降雨量为1.84 第9个月降雨量为9.63 第10个月降雨量为8.60

基本上,我在编写这个程序时经历了一段相当艰难的时间。这个程序的目的是询问用户他们希望看到多少年的数据,并基于这些输入,即显示多少组12个月的随机双降雨量值

如果用户输入3年,则输出应该是这样的:

输入年数:3

第一年的降雨量为

第1个月的降雨量为4.16 第2个月的降雨量为6.85 第3个月的降雨量为1.28 第4个月的降雨量为1.66 第5个月的降雨量为3.06 第6个月降雨量为4.62 第7个月降雨量为5.69 第8个月的降雨量为1.84 第9个月降雨量为9.63 第10个月降雨量为8.60 第11个月的降雨量为3.34 第12个月降雨量为1.27

第2年的降雨量为

第一个月的降雨量为4.38 第2个月的降雨量为4.64 第3个月的降雨量为8.27 第4个月的降雨量为3.19 第5个月降雨量为6.69 第6个月的降雨量为4.13 第7个月降雨量为8.52 第8个月的降雨量为5.71 第9个月的降雨量为3.91 第10个月的降雨量为9.16 第11个月的降雨量为3.47 第12个月降雨量为7.90

第3年降雨量为

第1个月的降雨量为2.73 第2个月的降雨量为2.92 第3个月的降雨量为7.98 第4个月的降雨量为2.82 第5个月降雨量为3.73 第6个月的降雨量为3.00 第7个月的降雨量为0.14 第8个月降雨量为9.98 第9个月的降雨量为5.34 第10个月的降雨量为8.12 第11个月的降雨量为8.66 第12个月降雨量为4.21

月数:36 总降雨量:181.62英寸 月平均降雨量:5.04英寸

到目前为止,我得到的是:

import java.util.*;


/**
  This class creates a program that finds the amount of rainfall for each year
*/
public class RainfallStats {
/**
  The main method is the program's starting point 
*/
public static void main(String[] args){

  int years = 0;
  double months = 0;
  final int numberMonths = 12;

  Scanner keyboard = new Scanner(System.in);
    Random generator = new Random();

  System.out.println("Enter the number of years: ");
  years = keyboard.nextInt();

  while (years <1){
     System.out.println("Invalid. Enter at least one year");
     years = keyboard.nextInt();
  }

  for (int y = 1; y <= years; y++){

      System.out.println("Year " + y + " rainfall amounts were");
      System.out.println();
  }    

     for (int m = 1; m <= numberMonths; m++){

        System.out.println("Month " + m + " rainfall amount was ");

我只需要在循环中得到帮助,并弄清楚如何在每个月报表之后放置不同的随机双精度值。我知道我可能有一些事情出了问题,我遗漏了很多,但我希望得到任何提示或提示。谢谢

给定rainful MaxRainsion的最大值(这将是最终变量),您可以使用java.util.random的nextDouble函数获得一个随机小数,并将其乘以MaxRainsion:

然后你可以用这个新的随机双精度函数做任何你想做的事情,它将在0和MaxRainsion之间

要输出相应年份之后的月份,而不是所有年份,然后是所有月份,请将月份的for循环嵌套在年份的for循环中:

for (int y = 1; y <= years; y++)
{
    System.out.println("Year " + y + " rainfall amounts were");
    System.out.println();
    for (int m = 1; m <= numberMonths; m++)
    {
        System.out.println("Month " + m + " rainfall amount was ");
        //Code to generate random double here
    }
}

谢谢,我真的很感激。你知道我如何在接下来的12个月里重复我的循环吗?从现在起,所有年份首先显示为月份1-12,而不是根据输入在每年递增后的12个月。@Drewmeister96在打印当前年份后,将月份的for循环嵌套在年份的for循环中。我会编辑文章来反射!我现在明白了。我把它当作一个完全不同的循环。谢谢我现在的设置是正确的,但我仍然很难理解如何使每个月的降雨量增加一倍。我按照你上面所说的做了一个随机的双精度测试,但是所有的月份都是一样的。我是否可能输入了错误的输出语句?如果你说不出来的话,我是个新手。@Drewmeister 96你必须在for循环中生成几个月的随机双精度,否则它将保持相同的状态。你知道的太多了,我已经把所有的东西都做好了,格式化好了,可以开始了,只是有一次计算给我带来了一些麻烦。我试图找到所有随机值的总和,我该如何得到它?
for (int y = 1; y <= years; y++)
{
    System.out.println("Year " + y + " rainfall amounts were");
    System.out.println();
    for (int m = 1; m <= numberMonths; m++)
    {
        System.out.println("Month " + m + " rainfall amount was ");
        //Code to generate random double here
    }
}