当前位置: 首页 > 面试题库 >

Java math.random,仅生成0?

柴飞扬
2023-03-14
问题内容

以下代码仅产生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);

感谢大家!


问题答案:

你正在使用Math.random()哪个州

返回double带有正号(大于或等于0.0并小于)的值1.0

你正在将结果转换为int,返回值的整数部分,即0。

然后1 + 0 - 1 = 0。

考虑使用 java.util.Random

Random rand = new Random();
System.out.println(rand.nextInt(3) + 1);


 类似资料:
  • 问题内容: UUID库生成32个字符的UUID。 我想只生成8个字符的UUID,这可能吗? 问题答案: 这是不可能的,因为每个定义的UUID是一个16字节的数字。 但是,当然,您可以生成8个字符长的唯一字符串(请参阅其他答案)。 另外,在生成更长的UUID并将其子串化时也要小心,因为ID的某些部分可能包含固定字节(例如,MAC,DCE和MD5 UUID就是这种情况)。

  • 我试图从我们需要实现的一个招摇过市的文件中生成接口。它是从外部来源提供的。我通常先使用契约,但在java/kotlin中很长一段时间没有这样做。 我已经建立了一个项目,希望尽可能多地控制我的代码。我尝试使用

  • 我想从我的changelog文件生成一个SQL文件,该文件只包含databasechangelog表,并在其中插入数据库的当前状态。在liquibase文档中有一篇文章(http://www.liquibase.org/2015/07/without-a-connection.html),其中写道,您可以将设置为,但在我的例子中它不起作用。我的属性文件如下所示: 但是,当我通过命令行使用时,它生成

  • 问题内容: 通常,应在目标目录中创建生成的源。但是,如何处理仅用于测试的类?我不希望这些类打包在我的jar中。有解决这种情况的通用方法吗? 问题答案: 使用maven build helper插件的目标将生成的测试源文件添加到build-> http://mojo.codehaus.org/build-helper-maven-plugin/add-test-source- mojo.html 它

  • 问题内容: 我有一个类似下面的生成器函数: 调用此函数的常用方法是: 我的问题是,有什么方法可以随时从生成器中获取一个元素吗?例如,我想做类似的事情: 问题答案: 使用创建一个生成器 每当您想要一件物品时,请使用 (或在Python 2.5或更低版本中)。 如果发电机退出,它将升高。您可以根据需要捕获此异常,也可以将参数使用到:

  • 从示例中,我看到了下面的代码片段,它运行良好。但问题是:我并不总是需要处理输入流并将其生成到接收器。 如果我有一个应用程序,根据某些事件,我必须只发布到kafka主题,以便下游应用程序可以做出某些决定。这意味着,我实际上没有输入流,但我只知道当我的应用程序中发生某些事情时,我需要向kafka的特定主题发布消息。也就是说,我只需要一个接收器。 我查看了示例,但没有找到符合我要求的任何内容。有没有一种