private static void generarbanca() {
int valorcartabanca;
do {
int valorcartabancamin = 1;// from one to 11
valorcartabanca = valorcartabancamin + (byte) (Math.random() * 10);
}while (valorcartabanca<15);
}
valorcartamin
是我要为起皱器生成的最小数字,因此问题在于程序陷入了无限循环。
我希望它生成数字,直到达到15分,并计算直到15等所需的数字。
答案 0 :(得分:1)
1 + (Math.random() * 10)
始终小于15。您要写
valorcartabanca += valorcartabancamin + (byte) (Math.random() * 10);
请注意+=
,而不是简单的=
。
答案 1 :(得分:0)
您需要从循环中提取valorcartabancamin的初始化,此外还需要保留valorcartabanca的当前值,因此请使用+ =运算符:
private static void generarbanca() {
int valorcartabancamin = 1;// desde uno hasta 11
int valorcartabanca = 0;
do {
valorcartabanca += valorcartabancamin + (byte) (Math.random() * 10);
} while (valorcartabanca<15);
}
答案 2 :(得分:-1)
您没有积累valorcartablanca。 尝试
int valorcartabanca = 1;
do {
valorcartabanca = valorcartabancamin + (byte) (Math.random() * 10);
}while (valorcartabanca<15);