如何在循环中更新多个变量

时间:2019-06-09 15:20:52

标签: java

我是一名Java初学者,面临以下问题:W”编写一个程序,该程序输入一个整数,该整数将是您将读取随机数的次数(n)。

然后该程序应该计算那些随机数的总和。

我了解如何生成随机数,并设置了一个For循环来为每个用户输入生成n个随机数。

import java.util.Scanner;
import java.util.Random;

public class Example {
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);

       int n;

        System.out.println("Enter a number:");

        n = input.nextInt();

        for (int i = 0; i < n; i++){
           double randomNumber = Math.random();
           System.out.println(randomNumber);
        }
    }
}

我的第一次尝试很费劲

System.out.println(randomNumber * randomNumber);
System.out.println(randomNumber + randomNumber);
代码底部的

可能由于其他人可能显而易见的原因而无法使用。

我坚持将n个随机数存储足够长的时间来对它们进行所需的算术运算的概念。

1 个答案:

答案 0 :(得分:1)

您应该能够仅对总和和积保持某种状态:

int n = input.nextInt();
double sum = 0d;
double product = 0d;

for (int i=0; i < n; i++) {
    double randomNumber = Math.random();
    sum += randomNumber;
    product = i == 0 ? randomNumber : product*randomNumber;
}

System.out.println("sum = " + sum);
System.out.println("product = " + product);

该行:

product = i == 0 ? randomNumber : product*randomNumber;

等效于:

if (i == 0) {
    product = randomNumber;
}
else {
    product = product*randomNumber;
}

我使用的版本称为三元表达式,这是一种简洁的编写方式(如果没有逻辑)。这里的想法是我们要用第一个随机数初始化乘积。否则,我们只将乘积乘以最新的随机数。