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 に答える