if 语句在错误的输入上触发

if statement triggering on wrong input

本文关键字:输入 语句 错误 if      更新时间:2023-09-26

好吧,所以我的 if 语句在错误的输入上触发时遇到了问题

一个例子,我有一个随机数生成器,当我得到输出 3 时它会自动激活 if 语句,当它得到 1 或 5 时应该激活

法典:

var randomnumber;
function randomIntFromInterval(min,max)
{
    randomnumber = Math.floor(Math.random()*(max-min+1)+min);
    console.log(randomnumber);
}
var LTB = 0; //this is how many times you have bought a lottery ticket
Lottery.addEventListener("click", function() {
    LF(1);
});    
function LF(lottery_number){
    if (lottery_number == 1) {
        randomIntFromInterval(1, 5);
        if (randomnumber == 1 | 5) {
            Points = Points * 2;
        }else if (randomnumber == 2 | 4) {
            Points = Points + 10;
        }else if (randomnumber == 3) {
            Bitcoins = Bitcoins + 1;
        }
    }else if (lottery_number == 2) {
        //i'm gonna add something here later and i have tried removing it
}
randomnumber = 0;
}
randomnumber == 1 | 5

应该是:

randomnumber == 1 || randomnumber == 5

最终结果:

function LF(lottery_number){
    if (lottery_number == 1) {
        randomIntFromInterval(1, 5);
    if (randomnumber == 1 || randomnumber == 5) {
        Points = Points * 2;
    }else if (randomnumber == 2 || randomnumber 4) {
        Points = Points + 10;
    }else if (randomnumber == 3) {
        Bitcoins = Bitcoins + 1;
    }
}else if (lottery_number == 2) {
    //i'm gonna add something here later and i have tried removing it
}
randomnumber = 0;
}

"|"是一个Bitwise或,你没有尝试做的事情。 ||是条件 OR。这应该可以正确地为您提供if报表检查。

randomnumber == 1 | 5

randomnumber == 1 || randomnumber == 5不同

| 是一个按位运算符,因此您的 expesss 的计算结果类似于 false | 5 它被强制转换为 0 | 5 它只是5是真实的,因此它进入第一个 if 块。