【发布时间】:2012-02-14 07:18:03
【问题描述】:
我正在创建一个包含 6 种不同问题类型的简单数学程序。我希望程序随机显示 6 种类型中的一种,但有些问题应该更频繁地出现。我使用加权数组,但是在从加权数组中选择问题类型后,如果没有在 if 语句中使用 10 个或更多“或”命令,我无法确定它是哪种问题类型。这是一个简化的版本:
//shuffle array of 10 integers to get a random value
var rand_10 = [0,1,2,3,4,5,6,7,8,9];
fisherYates(rand_10);
//Set weightedProb
weightedProb[0] = probType[0];
weightedProb[1] = probType[0];
weightedProb[2] = probType[0];
.
.
.
weightedProb[8] = probType[0];
weightedProb[9] = probType[1];
theProblem = weightedProb[rand_10[0]];
if(rand_10[0] == 0 || rand_10[0] == 1 || rand_10[0] == 2 || rand_10[0] == 3 ||rand_10[0] == 4||rand_10[0] == 5||rand_10[0] == 6||rand_10[0] == 7||rand_10[0] == 8){
//do something
}else if(rand_10[0] ==9){
//do something else
}
【问题讨论】:
-
这是一个 javascript Fisher–Yates Shuffle bost.ocks.org/mike/shuffle
-
if(rand_10[0] >= 0 && rand_10[0] < 9) { } else { } -
如果你切换if,它会变得更容易:
if (rand_10[0] === 9) {/*do something else*/} else {/*do something*/}
标签: javascript if-statement conditional-statements logical-operators logical-or