【发布时间】:2021-03-13 01:04:51
【问题描述】:
我最近开始学习 Java,并且有几个练习要练习。一直在努力解决这个问题:我必须获得 2 个随机数,A 和 B,并且必须打印 1 和 B 之间的所有偶数。我设法完成了这部分,但接下来的问题是:如果找到 2A,程序必须中断并显示以下消息:“找到 2A 的倍数”。我所能做的就是打印 1 和 B 之间的每个偶数,并排除每个 2 的倍数A,如下所示:
import java.util.Random;
public class JavaExercise {
public static void main(String[] args) {
Random random = new Random();
int A = random.nextInt(9) + 1;
int B = random.nextInt(99) + 1;
for (int i = 1; i <= B; ++i) {
if ((i % 2 == 0) && (i % (2*A) != 0))
System.out.println (i);
else
break;
}
}
}
但我需要程序在找到 2*A 的倍数时中断,并显示上面的消息。尝试这样做,但得到了一个非常糟糕的输出,显示消息多次而不是一次,:
for (int i = 1; i <= B; ++i) {
if (i % 2 == 0)
System.out.println (i);
if (i % (2*A) == 0)
break;
System.out.println("Multiple of 2A found");
}
谁能帮我找出我哪里出错了?不胜感激!
【问题讨论】:
-
与
b相比,为什么要限制a的范围?为什么不把它们都设为random.nextInt(99) + 1 -
我不确定我是否理解你的问题,但在练习中要求:A 的范围必须是从 1 到 10,B 的范围是从 1 到 100(如有错误,请见谅,我的英语很生疏)
-
你理解得很好。您的问题中没有包含范围作为要求。所以我只是想知道你为什么像以前那样选择它们。