var miles = 120;
if (miles > 0 && miles < 10)
{
miles = miles*50;
}
if (miles > 10 && miles < 40)
{
miles = ((miles-10)*1.5)+(10*50);
}
if (miles > 40 && miles < 100)
{
miles = ((miles-40)*2)+(10*1.5)+(10*50);
}
if (miles > 100 && miles < 1000)
{
miles = ((miles-100)*2.5)+(40*2)+(10*1.5)+(10*50);
}
console.log(miles);
请帮助我陷入逻辑之间
前10 // 50
总共50 // 10 * 50 + 1.5(40英里+10)
答案 0 :(得分:0)
您需要将else
添加到if语句中,否则它将无法正常工作
var miles = 120;
if( miles > 0 && miles <= 10)
{
miles = miles*50;
}
else if(miles > 10 && miles <= 40)
{
miles = ((miles-10)*1.5)+(10*50);
}
else if( miles > 40 && miles <= 100)
{
miles = ((miles-40)*2)+(10*1.5)+(10*50);
}
else if(miles > 100 && miles <= 1000)
{
miles = ((miles-100)*2.5)+(40*2)+(10*1.5)+(10*50);
}
else{
//maybe do something here
}
另外,你应该为你的结果使用另一个变量。
答案 1 :(得分:0)
我注意到的第一件事是你应该使用if
/ else if
,因为你真的只想抓住一个结构,使它在视觉上更清晰地相关。
其次,您只需< >
或<=
执行>=
即可排除某些数字,我的例子中我选择min < variable <= max
,但您可以轻松最小变量。
为了清楚起见,我将其分离为函数,并将其应用于数字原型以便于使用。
// check if given number is greater than min less than or equal to max
Number.prototype.between = function(min, max) {
return (this > min && this <= max);
}
// calculates your mileage amounts
const calcRate = distance => {
if (distance.between(0, 10)) {
return ( distance * 50 );
} else if (distance.between(10, 40)) {
return ( ( ( distance - 10 ) * 1.5 ) + ( 10 * 50 ) );
} else if (distance.between(40, 100)) {
return ( ( ( distance - 40 ) * 2 ) + ( 10 * 1.5 ) + ( 10 * 50 ) );
} else if (distance.between(100, 1000)) {
return ( ( ( distance - 100 ) * 2.5 ) + ( 40 * 2 ) + ( 10 * 1.5 ) + ( 10 * 50 ) );
} else if (distance > 1000) {
// do something
}
}
// test variable
let miles = 120;
// test result
let result = calcRate(miles);
// log result
console.log(result);