微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对循环中带有随机数的变量求和

如何解决对循环中带有随机数的变量求和

我正在生成一个 1 到 6 之间的随机数。我有一个值为 0 的整数值(int number1 = 0;)。我需要将它们添加到循环中。循环的每一轮都会再次生成随机数,并将其添加到之前的总和之上。我如何用 JAVA 编写(控制台)。

将一直持续到总和为 100

int number1 = 0;
int number2 = (int) (Math.random () * 6 + 1);

例如:如果 number2 来 3 number1 (0) + number2 (3) = 3
如果 number2 来 4 number1 (3) + number2 (4) = 7

解决方法

WHILE LOOP

int number1 = 0;
int loop = 6;

while (loop > 0){
    number1 += (int) (Math.random () * 6 + 1);
    loop--;
}       

FOR 循环

int number1 = 0;
int loop = 6;

for (int i = 0; i < loop; i++){
    number1 += (int) (Math.random() * 6 + 1);
}
,

一个简单的 for 循环就可以了。您没有指定何时结束,所以这里是一个运行 10 次迭代的示例:

int number1 = 0;
for(int i = 0; i < 10; ++i) {
    number1 += (int)(Math.random() * 6 + 1);
}

您也可以使用随机:

int number1 = 0;
Random random = new Random();
for(int i = 0; i < 10; ++i) {
    number1 += random.nextInt(6) + 1;
}
,

方法 1 - 使用 do-while 循环

int sum =0;
do{
    sum += (int) (Math.random () * 6 + 1);
  }while(sum < 100);
System.out.println("Sum = " + sum);

方法 2 - 使用 while 循环

int sum =0;
while(sum < 100){
     sum += (int) (Math.random () * 6 + 1);
}
System.out.println("Sum = " + sum);

方法 3 - 使用 for 循环

int sum;
for(sum = 0; sum < 100;){
    sum += (int) (Math.random () * 6 + 1);
}
System.out.println("Sum = " + sum);
,

你可以用一个变量写一个更简单的解决方案:

for(int i = 0; i <= 6){
    number += (int) (Math.random () * 6 + 1);
}
,

有很多方法可以做到。一种简单的方法是使用无限循环,您可以在 number1 == 100 时中断该循环。在添加随机数后检查 if (number1 > 100) 并删除该随机数(如果它 true)也很重要。

public class Main {
    public static void main(String[] args) {
        int number1 = 0;
        while (true) {
            System.out.println("Current value: " + number1);
            if (number1 == 100) {
                break;
            }
            int random = (int) (Math.random() * 6 + 1);
            number1 += random;
            if (number1 > 100) {
                number1 -= random;
            }
        }
    }
}

示例运行:

Current value: 0
Current value: 4
Current value: 9
Current value: 13
Current value: 19
Current value: 24
Current value: 29
Current value: 35
Current value: 39
Current value: 43
Current value: 48
Current value: 51
Current value: 57
Current value: 58
Current value: 62
Current value: 66
Current value: 70
Current value: 74
Current value: 79
Current value: 85
Current value: 88
Current value: 93
Current value: 97
Current value: 97
Current value: 98
Current value: 98
Current value: 100

为避免将生成的随机数强制转换为 int,我建议您使用 Random#nextInt(int bound),如下所示:

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        int number1 = 0;
        Random rand = new Random();
        while (true) {
            System.out.println("Current value: " + number1);
            if (number1 == 100) {
                break;
            }
            int random = rand.nextInt(6) + 1;
            number1 += random;
            if (number1 > 100) {
                number1 -= random;
            }
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。