以下代码仅产生0;-;我究竟做错了什么?public class RockPaperSci { public static void main(String[] args) { //Rock 1 //Paper 2 //Scissors 3 int croll =1+(int)Math.random()*3-1; System.out.println(croll); }}编辑,另一张海报建议修复它。int croll = 1 +(int)(Math.random()* 4-1);
3 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
您正在使用Math.random()哪个州
返回一个double带有正号(大于或等于0.0并小于)的值1.0。
您正在将结果转换为int,返回值的整数部分,即0。
然后1 + 0 - 1 = 0。
考虑使用 Random
Random rand = new Random();
System.out.println(rand.nextInt(3) + 1);
翻阅古今
TA贡献1780条经验 获得超5个赞
public static double random()
返回一个带正号的双精度值,大于或等于0.0且小于1.0。从该范围(近似)均匀分布伪随机地选择返回值。
int croll =1+(int)Math.random()*3-1;
例如
int croll =1+0*-1;
System.out.println(croll); // will print always 0
添加回答
举报
0/150
提交
取消