在二十一点游戏中出现气泡时出现问题

时间:2018-11-07 09:06:37

标签: java

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等所需的数字。

3 个答案:

答案 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);