【问题标题】:Java: Random Class AdviceJava:随机类建议
【发布时间】:2015-04-23 14:43:51
【问题描述】:

所以我应该创建一个程序,生成 100 个介于 1 和 1000 之间的随机整数,然后告诉返回偶数和奇数的整数个数。到目前为止,我已经完成了那部分。但是,第二部分我无法弄清楚。我需要做同样的事情 10 次,然后我需要将所有这些加在一起以获得总数。

import java.util.Random;

public class EvenOrOdd
{
  public static void main(String[] args)
  {
    int even = 0, odd = 0;
    int iteration = 0;

    while (iteration<10)
    {
      for(int i = 0; i<100;i++)
      {
        int number2 = random.nextInt(1000) + 1;
        if ((number2 % 2) == 0)
        {
          even++;
        }
        else if ((number2 % 2) == 1)
        {
          odd++;
        }

      }
      System.out.println("Iteration " + " Evens " + " Odds");
        iteration++;
      System.out.println(iteration + "          " + even + "     " + odd);
        iteration++;
      System.out.println(iteration + "          " + even + "     " + odd);
        iteration++;
      System.out.println(iteration + "          " + even + "     " + odd);
        iteration++;
      System.out.println(iteration + "          " + even + "     " + odd);
        iteration++;
      System.out.println(iteration + "          " + even + "     " + odd);
        iteration++;
      System.out.println(iteration + "          " + even + "     " + odd);
        iteration++;
      System.out.println(iteration + "          " + even + "     " + odd);
        iteration++;
      System.out.println(iteration + "          " + even + "     " + odd);
        iteration++;
      System.out.println(iteration + "          " + even + "     " + odd);
        iteration++;
      System.out.println(iteration + "         " + even + "     " + odd);
    }
    System.out.println("\nEvens: " + even + "\nOdds:  " + odd);
  }
}

我试过取出来

System.out.println("Iteration " + " Evens " + " Odds");

并将其放在while循环之上,然后删除除一个之外的所有

    iteration++;
  System.out.println(iteration + "          " + even + "     " + odd);

但是当我这样做时,我的偶数和赔率几乎每次迭代都会翻倍。

所以再重复一遍我想做的事:我想做到每一件事

    iteration++;
  System.out.println(iteration + "          " + even + "     " + odd);

显示一个新的偶数和奇数,而不是同一个。然后,由于我也不知道该怎么做,所以我想把十个偶数和十个赔率加起来。感谢您的帮助!

【问题讨论】:

    标签: java if-statement random


    【解决方案1】:

    你快到了,主要问题是你在 while 循环内增加了 10 次迭代,所以它立即退出了 while 循环。我刚刚删除了所有这些增量,它可以工作!

    此外,最好在 while 循环之外有一个偶数和奇数的总计数器,然后在 while 循环中的每次迭代后将总数相加,如下所示:

    public class EvenOrOdd {
    
        public static void main(String[] args) {
    
            Random random = new Random();
            int evenTotal = 0, oddTotal = 0;
            int iteration = 0;
    
            System.out.println("Iteration " + " Evens " + " Odds");
    
            while (iteration < 10) {
                int even = 0, odd = 0;
                for (int i = 0; i < 100; i++) {
                    int number2 = random.nextInt(1000) + 1;
                    if ((number2 % 2) == 0)
                        even++;
                    else if ((number2 % 2) == 1)
                        odd++;
    
                }
                iteration++;
                System.out.println(iteration + "          " + even + "     " + odd);
                evenTotal += even;
                oddTotal += odd;
            }
            System.out.println("\nEvens: " + evenTotal + "\nOdds:  " + oddTotal);
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-11
      • 2015-06-27
      • 2014-07-02
      • 2013-12-04
      • 2012-08-28
      • 1970-01-01
      • 2015-03-16
      相关资源
      最近更新 更多