【问题标题】:Magic 8 Ball not printing all the time javaMagic 8 Ball一直没有打印java
【发布时间】:2020-01-22 07:57:12
【问题描述】:

我正试图通过我添加的百分比使我的代码在 100% 的时间内运行。百分比由布尔值列出。我是java新手,会得到任何帮助。这是我的代码,它不会像魔术 8 球那样一直运行 我的代码。

public class Assessment_Unit_1 {
public static void main(String[] args) {
    boolean good = Math.random() < .13;
    boolean notNow = Math.random() < .37;
    boolean yes = Math.random() < .24;
    boolean never = Math.random() < .26;
    System.out.println("You rolled the Magic 4 Ball:");
    System.out.println("All Signs Say:");
    if (good) {
        System.out.println("Prospects Good");
    }
    else if (notNow) {
        System.out.println("Not now");
    }

    else if (yes) {
        System.out.println("yes");
    }

    else if (never) {
        System.out.println("never");
        }
    }
}   

任何帮助将不胜感激!

【问题讨论】:

  • 问题不清楚。请编辑您的问题
  • 请不要通过破坏您的帖子为他人增加工作量。通过在 Stack Exchange (SE) 网络上发帖,您已在 CC BY-SA 4.0 license 下授予 SE 分发内容的不可撤销的权利(即无论您未来的选择如何)。根据 SE 政策,分发非破坏版本。因此,任何破坏行为都将被撤销。请参阅:How does deleting work? …。如果允许删除,则帖子下方左侧有一个“删除”按钮,但仅在浏览器中,而不是移动应用程序中。

标签: java eclipse if-statement boolean


【解决方案1】:

当您调用 Math.Random() 时,它会返回一个介于 0 和 1 之间的 new 值。因此,第一个 math.random() 返回的值可能大于 0.13,而下一个可能会返回大于 0.13 的不同数字0.37,下一个 math.random() 的值大于 0.24,下一个值可能大于 0.26...

如果您将 if else 语句更改为 just if 语句,它可能会输出多个答案!这显然不是你想要的。

你只想要一个结果,对吧?有 13%、37%、24% 和 26% 的可能性,这是我的假设。你的代码逻辑有点不对劲。按照您的代码结构,您需要定义一个变量,您需要检查四次,例如 double rndDecimal = math.random(),然后检查 rndDecimal &gt; 0 &amp;&amp; rndDecimal &lt; 0.13 for the first boolean 或第二次是否介于 0.13 和 0.5 (0.13 + 0.37) 之间,然后在 0.5 和 0.74 之间下一个 0.74 和 1!这总会给你一个结果

【讨论】:

  • @MarkSeibert 如果您认为这是正确答案,如果您单击答案旁边的复选标记将其标记为正确,那就太好了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
  • 2011-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多