我正在使用以下代码,它随机生成数字,但问题是,我无法弄清楚为什么它不生成数字1
int ran, g, d, col, ran2;
double y = 1000 * (Double.parseDouble(t2.getText()));
int x = (int) y;
d = Integer.parseInt(anum.getText());
double c = 10;
int prevrandom = Integer.parseInt(lnum.getText());
lnum.setText("");
lnum.setVisible(true);
for (g = 0; g==0;) {
d = Integer.parseInt(anum.getText());
ran = (int) (Math.random() * (c)); // Random Number Creation Starts
if (ran > (c / 10)) {
g = 1;
ran2 = ((int) (Math.random() * 10)) % 2;
if (ran2 == 1) {
ran = ran * (-1);
}
d = d + ran;
if (d < 0) {
ran = ran * (-1);
d = d + (2 * ran);
}
int a = d - ran;
if(prevrandom==ran){
g=0;
}
if(g==1){
lnum.setText("" + ran);
}
}
}
我从某个地方调用这个函数(按钮)。当总和('a')变为 4 时,问题就出现了,根据我的条件,它不应该允许除 'one' 之外的任何数字,因此它会进入无限循环。
我说的是ran
变量。乘以where是一个正整数后Math.random
得到的。10^x
x
这ran2
是一个值为 1 或 0 的数字。当我将 Math.Random 与 10 相乘时,得到一个 1 位数字,然后将其与 2 相加。
这是一个 14 岁的男孩,刚接触 java。如果有人能在这里提供帮助而不是劝阻,那就太好了。