gpt4 book ai didi

java - 在java中生成函数参数

转载 作者:行者123 更新时间:2023-12-02 08:32:14 24 4
gpt4 key购买 nike

我对 Java 非常陌生,正在开发我的第一个 Android 应用程序。我使用 webview 演示作为模板。我试图生成一个 1 到 12 之间的随机整数,然后根据结果调用某个 javascript 函数。这是我所拥有的:

int number = 1 + (int)(Math.random() * ((12 - 1) + 1));
number = (int) Math.floor(number);
String nextQuote = "javascript:wave" + number + "()";
mWebView.loadUrl(nextQuote);

因此 mWebView.loadUrl(nextQuote) 将与 mWebView.loadUrl("javascript:wave1()")

我只是想知道我这里的内容是否正确并且会按照我想象的方式工作。该应用程序没有按预期响应,我怀疑这段代码是罪魁祸首。

最佳答案

关键语句如下:

int number = 1 + (int)(Math.random() * ((12 - 1) + 1));
number = (int) Math.floor(number);

第一个语句给出了您需要的答案,但方式相当麻烦。让我们逐步了解发生了什么:

  1. ((12 - 1) + 1)12 。 (这是在编译时评估的...)

  2. Math.random()给出 double0.0D <= rd < 1.0D 范围内.

  3. Math.random() * 12给出 double0.0D <= rd < 12.0D 范围内.

  4. (int)强制转换 doubleint通过向零舍入。换句话说(int)(Math.random() * 12)将是 0 <= ri <= 11 范围内的整数.

  5. 最后你添加 1给出 1 <= ri <= 12 范围内的整数.

W**5 :-)

更简单、更清晰的版本是:

private static Random rand = new Random();
...
int number = 1 + rand.nextInt(12);

第二个语句(据我所知)是一个空操作。它隐式转换 intdouble ,得到double小于或等于 double 的最大整数形式,并将其转换回 int 。结果将始终与原始 int 相同。

关于java - 在java中生成函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3027218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com