带有嵌套 If 语句的 Javascript 随机数

标签 javascript if-statement nested

我有一些 Javascript,它会选择 1 到 10 之间的随机数,然后根据所选的随机数是否大于 5 将两个图像之一加载到 img.src = 中。

这是我的代码:

if ((Math.random() * 10) + 1 > 5) {
    img.src = '1.jpg';
} else {
    img.src = '2.jpg';
}

这对于 2 个图像非常有效,但我现在希望它从 4 个图像中进行选择。

我尝试使用上面的代码执行嵌套 if 语句,但我意识到我正在运行 Math.random 的多个实例,这违背了目的。

然后我尝试使用Math.random在一开始就定义一个变量,然后编写了一个嵌套的If语句,如下所示:

var picnumber = Math.floor((Math.random() * 4) + 1);

if (picnumber = 1){
  img.src = '1.jpg';
} else {
  if (picnumber = 2){
    img.src = '2.jpg';
  } 
  else {
  if (picnumber = 3){
    img.src = '3.jpg';
  }
  else {
    img.src = '4.jpg';
  }
}}

我已经运行此代码 20 多次,并且它不断加载相同的图像,图像 “1.jpg”。我认为我在这里做了一些非常基本的错误,如何确保为 var picnumber 分配一个随机数(1、2、3 或 4),并且正确的图像将是否附加到 img.src? (我希望每张图片都有 25% 的机会被选中)。
预先感谢您的宝贵时间!

最佳答案

您使用的是赋值运算符(=),而不是比较运算符(==)。另外,您可以使用 elseif,这样您就不需要在 else 语句中放置新的 if :

var picnumber = Math.floor((Math.random() * 4) + 1);

if (picnumber == 1){
  img.src = '1.jpg';
} else if (picnumber == 2) {
    img.src = '2.jpg';
} else if (picnumber == 3) {
    img.src = '3.jpg';
} else {
    img.src = '4.jpg';
}

关于带有嵌套 If 语句的 Javascript 随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29683743/

相关文章:

vb.net - VB.Net 上奇怪的 If Else 行为

java - If else 条件和逻辑运算符

python - 避免在 for 循环中更新嵌套列表

javascript - Railscast #197 的问题 - 嵌套模型表单第 2 部分

c - 这个用于查找写入的最小数字的基本 if 代码有什么问题

c# - 动态创建嵌套转发器控件

c - 如何处理嵌套列表?

javascript - 从 Ruby on Rails 输出散列数组到 chart.js

java - AJAX/JavaScript 搜索性能优于 Java/Oracle

javascript - 为什么不能像 {}.toString() 这样的对象文字调用 toString() 方法导致错误?