猿问

在二十一点游戏中制作一段时间的麻烦

private static void generarbanca() {

    int valorcartabanca;

    do {

        int valorcartabancamin = 1;// from one to 11

        valorcartabanca = valorcartabancamin + (byte) (Math.random() * 10);

    }while (valorcartabanca<15);

}

valorcartamin是我想为 crupier 生成的最小数字,所以问题是程序进入无限循环。我希望它生成数字直到达到 15 分并计算所需的数字直到 15 等等。


萧十郎
浏览 135回答 3
3回答

牛魔王的故事

1 + (Math.random() * 10)&nbsp;将永远小于 15。你想写吗valorcartabanca&nbsp;+=&nbsp;valorcartabancamin&nbsp;+&nbsp;(byte)&nbsp;(Math.random()&nbsp;*&nbsp;10);请注意,+=而不是简单的=.

慕标琳琳

您需要从循环中提取 valorcartabancamin 的初始化,此外还需要保留 valorcartabanca 的当前值,因此使用 += 运算符:&nbsp;private static void generarbanca() {&nbsp; &nbsp; int valorcartabancamin = 1;// desde uno hasta 11&nbsp; &nbsp; int valorcartabanca = 0;&nbsp; &nbsp; do {&nbsp; &nbsp; &nbsp; &nbsp; valorcartabanca += valorcartabancamin + (byte) (Math.random() * 10);&nbsp; &nbsp; } while (valorcartabanca<15);}

侃侃无极

你不是在积累 valorcartablanca。尝试int valorcartabanca = 1;do {&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; valorcartabanca = valorcartabancamin + (byte) (Math.random() * 10);}while (valorcartabanca<15);
随时随地看视频慕课网APP

相关分类

Java
我要回答