为了账号安全,请及时绑定邮箱和手机立即绑定

math.random,仅生成0?

math.random,仅生成0?

子衿沉夜 2019-12-06 15:12:32
以下代码仅产生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);


查看完整回答
反对 回复 2019-12-06
?
翻阅古今

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 


查看完整回答
反对 回复 2019-12-06
  • 3 回答
  • 0 关注
  • 787 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信