应该如何格式化JS Case Switches?

时间:2017-06-25 18:01:15

标签: javascript c# node.js switch-statement discord

所以我使用Node.js为我的服务器开发了一段Discord bot几天,对JS来说是全新的。我试图将一个魔术8球的一些代码转换成一个教程模型完成JS到实现作为一个函数(只是随机数和案例切换)。

这是来自C#项目:

    switch (random.Next(4))
                                                {
                                                case 0:
                                                    Console.WriteLine("YES");
                                                    speechSynthesizer.Speak("Yes");
                                                    break;
                                                case 1:
                                                    Console.WriteLine("NO");
                                                    speechSynthesizer.Speak("No");
                                                    break;
                                                case 2:
                                                    Console.WriteLine("HELL NO");
                                                    speechSynthesizer.Speak("Hell no");
                                                    break;
                                                case 3:
                                                    speechSynthesizer.Speak("Hell yes");
                                                    Console.WriteLine("HELL YES");
                                                    break;
                                                }

这就是我想要实现的目标:

    switch( Math.random.Next(4)) {
          case 0:
          msg.channel.send('Yes');
          break;
          case 1:
          msg.channel.send('No');
          break;
          case 2:
          msg.channel.send('Hell yes!');
          break;
          case 3:
          msg.channel.send('Hell No!');
          break;
      }

我基本上是想添加一个可以发送“Magic 8 Ball”的部分,它会返回Yes / No / Hell Yes / Hell No.。

编辑: 所以我遵循了评论的建议,并在每个实例中将“case”切换为全部小写。我现在收到的错误是数学未定义。另一篇文章建议将数学转换为数学。接下来不是一个功能。

1 个答案:

答案 0 :(得分:0)

如果你的问题是在你的交换机中生成一个随机的int,你首先需要知道如何生成伪随机int。

Math.random生成一个范围为[0,1)

的浮点数

因此,您需要获取该值,将其乘以最大值,然后将其置于最小值。

Math.floor(Math.random() * max)

您的最终代码如下所示:

switch(Math.floor(Math.random() * 4))) {  // 4 is maximum n of options
      case 0:
          msg.channel.send('Yes');
          break;
      case 1:
          msg.channel.send('No');
          break;
      case 2:
          msg.channel.send('Hell yes!');
          break;
      case 3:
          msg.channel.send('Hell No!');
          break;
  }