1

我正在编写代码来计算直到 65 岁生日的保险费。

到目前为止,我已经想出了这个,但我陷入了困境:

function showQuote(bday,bmonth,byear)
{


    var DoB = new Date(byear,bmonth,bday) 
    var todayDate = new Date();
    todayYear = todayDate.getFullYear();
    todayMonth = todayDate.getMonth();
    todayDay = todayDate.getDate();
    var userAge;


    userAge = todayYear - byear;

    if(todayMonth < (bmonth - 1 ))
    {

    userAge--;

    }

    else if (((bmonth - 1) == todayMonth) && (todayDay < bday))

    {

    userAge--;

    }

document.getElementById("ageResult").innerHTML = "You are currently: " 
+ userAge;

var displayQuote = 0;

    for (Age = userAge; Age <= 65; Age--)

    {
    displayQuote = 500-(500*(65-Age)/100);
    return displayQuote;
    }
}

我想做的是显示前 3 年,然后是第 65 年。

4

1 回答 1

1
for (Age = userAge; Age <= 65; Age--)

{
displayQuote = 500-(500*(65-Age)/100);
return displayQuote;
}

}

我相信您的问题都在于您的代码的这一部分。

1)年龄 - 会减少,所以除非您的用户年龄超过 65 岁,否则您的循环将永远不会结束

2)当您使用 return 关键字时,它将该值返回给调用它的任何内容并退出函数

3)目前您正在运行循环,直到用户达到 65。

for (Age =userAge ; Age <= 65; Age++) {
   if ((Age<(userAge+3))|| (Age==65)){
       displayQuote = 500-(500*(65-Age)/100);
       alert(displayQuote);
   }
}

@Mike Samuel 如果您说 Age<3 它只会在用户为 0-2 时给出

 var Age = 65-userAge
 displayQuote = new Array(4);
 for (var i=0; i<3; i++)//first 3 years
     displayQuote[i] = 500-(500*(65+i)/100);
 displayQuote[3]= 500-(500*(65)/100);//65th year


    document.getElementById("quoteResult").innerHTML = "Your quote is: " + document.getElementById("quoteResult").innerHTML + "<br/> year 1 " + " : £" + displayQuote[0] + " " + "Year 2: £" + displayQuote[1] + " " + "Year 3: £" + displayQuote[2]+"<br />";

我不确定当它是第 65 年时你想如何显示。你会使用 displayQuote[3]; 您之前所拥有的是读取相同的变量 3 次。这就是你遇到麻烦的原因。

于 2012-05-23T16:18:42.227 回答