JS Case Switches 应该如何格式化?
Posted
技术标签:
【中文标题】JS Case Switches 应该如何格式化?【英文标题】:How exactly are JS Case Switches supposed to be formatted? 【发布时间】:2017-11-28 15:59:42 【问题描述】:所以几天来,我一直在使用 Node.js 为我的服务器开发一个 Discord 机器人,并且对 JS 来说是全新的。我正在尝试将一些代码从 Magic 8 Ball 中完成的教程模型转换为 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。
编辑: 所以我听从了评论的建议,并在每个实例中将“大小写”切换为所有小写。我现在收到的错误是数学未定义。另一篇文章只是建议将数学转换为数学。 next 不是函数。
【问题讨论】:
case
应为小写:developer.mozilla.org/en/docs/Web/javascript/Reference/…
它是在哪里定义的?
【参考方案1】:
如果您的问题是生成一个随机 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;
【讨论】:
以上是关于JS Case Switches 应该如何格式化?的主要内容,如果未能解决你的问题,请参考以下文章