我是新來的Java編程,所以請原諒我的愚蠢的問題,Android的心臟風險計算
一個例子是這樣的:假設你是一個30yo女性,你開始-9點。如果你的總膽固醇是180,那麼增加4分,如果你的吸菸者增加8分,如果你的HDL膽固醇超過60,減去1分,並且如果你的血壓是135,那麼增加1分。給你+3的結果。
我很難搞清楚如何將各個分數數字加在一起。
這是我到目前爲止已經試過:
private void calculateForWomen(){
// For Women
// 20–34 years: Minus 7 points. 35–39 years: Minus 3 points.
// 40–44 years: 0 points. 45–49 years: 3 points.
// 50–54 years: 6 points. 55–59 years: 8 points.
// 60–64 years: 10 points. 65–69 years: 12 points.
// 70–74 years: 14 points. 75–79 years: 16 points.
String strIsSmoker = spSmoker.getSelectedItem().toString();
strAge = etAge.getText().toString();
strTotalCholesterol = etTotalCholesterol.getText().toString();
strHDL = etHDL.getText().toString();
strSBP = etSBP.getText().toString();
int age = Integer.valueOf(strAge);
int totalcholesterol = Integer.valueOf(strTotalCholesterol);
int hdl = Integer.valueOf(strHDL);
int sbp = Integer.valueOf(strSBP);
if(age >= 20 || age <= 34 ){ // Minus 7 points
// First point
points = points - 7;
// Second point
if(totalcholesterol <= 160){ // 0 point
points = points + 0;
}
else if(totalcholesterol >= 160 || totalcholesterol <= 199){ // 4 points
points = points + 4;
}
else if(totalcholesterol >= 200 || totalcholesterol <= 239){ // 8 points
points = points + 8;
}
else if(totalcholesterol >= 240 || totalcholesterol <= 279){ // 11 points
points += 11;
}
else if(totalcholesterol >=280){ // 13 points
points += 13;
}
// Third point
if(hdl >= 60) // Minus 1 point
{
points -= 1;
}
else if(hdl >= 50 || hdl <= 59){ // 1 point
points += 1;
}
else if(hdl <= 40){ // 2 points
points += 2;
}
// Fourth point
if(sbp == 120){ // 0 point
points += 0;
}
else if(sbp >= 120 || sbp <= 129){ // 1 point
points += 1;
}
else if(sbp >= 130 || sbp <= 139){ // 2 points
points += 2;
}
else if(sbp >= 140 || sbp <= 159){ // 3 points
points += 3;
}
else if(sbp >= 160){ // 4 points
points += 4;
}
// Fifth point
// 9 points
if(strIsSmoker.equals("Yes")){
points += 9;
} // 0 point
else if(strIsSmoker.equals("No")){
points += 0;
}
totalPoints = points;
String strTotalPoints = String.valueOf(totalPoints);
Toast.makeText(getBaseContext(), "Your score is " + strTotalPoints, Toast.LENGTH_LONG).show();
}
else if(age >= 35 || age <= 39){
// First point
points = points - 3;
// Second point
if(totalcholesterol <= 160){ // 0 point
points = points + 0;
}
else if(totalcholesterol >= 160 || totalcholesterol <= 199){ // 4 points
points = points + 4;
}
else if(totalcholesterol >= 200 || totalcholesterol <= 239){ // 8 points
points = points + 8;
}
else if(totalcholesterol >= 240 || totalcholesterol <= 279){ // 11 points
points += 11;
}
else if(totalcholesterol >=280){ // 13 points
points += 13;
}
// Third point
if(hdl >= 60) // Minus 1 point
{
points -= 1;
}
else if(hdl >= 50 || hdl <= 59){ // 1 point
points += 1;
}
else if(hdl <= 40){ // 2 points
points += 2;
}
// Fourth point
if(sbp == 120){ // 0 point
points += 0;
}
else if(sbp >= 120 || sbp <= 129){ // 1 point
points += 1;
}
else if(sbp >= 130 || sbp <= 139){ // 2 points
points += 2;
}
else if(sbp >= 140 || sbp <= 159){ // 3 points
points += 3;
}
else if(sbp >= 160){ // 4 points
points += 4;
}
// Fifth point
// 9 points
if(strIsSmoker.equals("Yes")){
points += 9;
} // 0 point
else if(strIsSmoker.equals("No")){
points += 0;
}
totalPoints = points;
String strTotalPoints = String.valueOf(totalPoints);
Toast.makeText(getBaseContext(), "Your score is " + strTotalPoints, Toast.LENGTH_LONG).show();
}
else if(age >= 40 || age <= 44){
// First point
points += 0;
// Second point
if(totalcholesterol <= 160){ // 0 point
points += 0;
}
else if(totalcholesterol >= 160 || totalcholesterol <= 199){ // 3 points
points += 3;
}
else if(totalcholesterol >= 200 || totalcholesterol <= 239){ // 6 points
points += 6;
}
else if(totalcholesterol >= 240 || totalcholesterol <= 279){ // 8 points
points += 8;
}
else if(totalcholesterol >=280){ // 10 points
points += 10;
}
// Third point
if(hdl >= 60) // Minus 1 point
{
points -= 1;
}
else if(hdl >= 50 || hdl <= 59){ // 1 point
points += 1;
}
else if(hdl <= 40){ // 2 points
points += 2;
}
// Fourth point
if(sbp == 120){ // 0 point
points += 0;
}
else if(sbp >= 120 || sbp <= 129){ // 1 point
points += 1;
}
else if(sbp >= 130 || sbp <= 139){ // 2 points
points += 2;
}
else if(sbp >= 140 || sbp <= 159){ // 3 points
points += 3;
}
else if(sbp >= 160){ // 4 points
points += 4;
}
// Fifth point
// 7 points
if(strIsSmoker.equals("Yes")){
points += 7;
}
else if(strIsSmoker.equals("No")){
points += 0;
}
totalPoints = points;
String strTotalPoints = String.valueOf(totalPoints);
Toast.makeText(getBaseContext(), "Your score is " + strTotalPoints, Toast.LENGTH_LONG).show();
}
else if(age >= 45 || age <= 49){
// First point
points += 3;
// Second point
if(totalcholesterol <= 160){ // 0 point
points += 0;
}
else if(totalcholesterol >= 160 || totalcholesterol <= 199){ // 3 points
points += 3;
}
else if(totalcholesterol >= 200 || totalcholesterol <= 239){ // 6 points
points += 6;
}
else if(totalcholesterol >= 240 || totalcholesterol <= 279){ // 8 points
points += 8;
}
else if(totalcholesterol >=280){ // 10 points
points += 10;
}
// Third point
if(hdl >= 60) // Minus 1 point
{
points -= 1;
}
else if(hdl >= 50 || hdl <= 59){ // 1 point
points += 1;
}
else if(hdl <= 40){ // 2 points
points += 2;
}
// Fourth point
if(sbp == 120){ // 0 point
points += 0;
}
else if(sbp >= 120 || sbp <= 129){ // 1 point
points += 1;
}
else if(sbp >= 130 || sbp <= 139){ // 2 points
points += 2;
}
else if(sbp >= 140 || sbp <= 159){ // 3 points
points += 3;
}
else if(sbp >= 160){ // 4 points
points += 4;
}
// Fifth point
// 7 points
if(strIsSmoker.equals("Yes")){
points += 7;
}
else if(strIsSmoker.equals("No")){
points += 0;
}
totalPoints = points;
String strTotalPoints = String.valueOf(totalPoints);
Toast.makeText(getBaseContext(), "Your score is " + strTotalPoints, Toast.LENGTH_LONG).show();
}
else if(age >= 50 || age <= 54){
// First point
points += 6;
// Second point
if(totalcholesterol <= 160){ // 0 point
points += 0;
}
else if(totalcholesterol >= 160 || totalcholesterol <= 199){ // 2 points
points += 2;
}
else if(totalcholesterol >= 200 || totalcholesterol <= 239){ // 4 points
points += 4;
}
else if(totalcholesterol >= 240 || totalcholesterol <= 279){ // 5 points
points += 5;
}
else if(totalcholesterol >=280){ // 7 points
points += 7;
}
// Third point
if(hdl >= 60) // Minus 1 point
{
points -= 1;
}
else if(hdl >= 50 || hdl <= 59){ // 1 point
points += 1;
}
else if(hdl <= 40){ // 2 points
points += 2;
}
// Fourth point
if(sbp == 120){ // 0 point
points += 0;
}
else if(sbp >= 120 || sbp <= 129){ // 1 point
points += 1;
}
else if(sbp >= 130 || sbp <= 139){ // 2 points
points += 2;
}
else if(sbp >= 140 || sbp <= 159){ // 3 points
points += 3;
}
else if(sbp >= 160){ // 4 points
points += 4;
}
// Fifth point
// 4 points
if(strIsSmoker.equals("Yes")){
points += 4;
}
else if(strIsSmoker.equals("No")){
points += 0;
}
totalPoints = points;
String strTotalPoints = String.valueOf(totalPoints);
Toast.makeText(getBaseContext(), "Your score is " + strTotalPoints, Toast.LENGTH_LONG).show();
}
else if(age >= 55 | age <= 59){
// First point
points += 8;
// Second point
if(totalcholesterol <= 160){ // 0 point
points += 0;
}
else if(totalcholesterol >= 160 || totalcholesterol <= 199){ // 2 points
points += 2;
}
else if(totalcholesterol >= 200 || totalcholesterol <= 239){ // 4 points
points += 4;
}
else if(totalcholesterol >= 240 || totalcholesterol <= 279){ // 5 points
points += 5;
}
else if(totalcholesterol >=280){ // 7 points
points += 7;
}
// Third point
if(hdl >= 60) // Minus 1 point
{
points -= 1;
}
else if(hdl >= 50 || hdl <= 59){ // 1 point
points += 1;
}
else if(hdl <= 40){ // 2 points
points += 2;
}
// Fourth point
if(sbp == 120){ // 0 point
points += 0;
}
else if(sbp >= 120 || sbp <= 129){ // 1 point
points += 1;
}
else if(sbp >= 130 || sbp <= 139){ // 2 points
points += 2;
}
else if(sbp >= 140 || sbp <= 159){ // 3 points
points += 3;
}
else if(sbp >= 160){ // 4 points
points += 4;
}
// Fifth point
// 4 points
if(strIsSmoker.equals("Yes")){
points += 4;
}
else if(strIsSmoker.equals("No")){
points += 0;
}
totalPoints = points;
String strTotalPoints = String.valueOf(totalPoints);
Toast.makeText(getBaseContext(), "Your score is " + strTotalPoints, Toast.LENGTH_LONG).show();
}
else if(age >= 60 || age <= 64){
// First point
points += 10;
// Second point
if(totalcholesterol <= 160){ // 0 point
points += 0;
}
else if(totalcholesterol >= 160 || totalcholesterol <= 199){ // 1 points
points += 1;
}
else if(totalcholesterol >= 200 || totalcholesterol <= 239){ // 2 points
points += 2;
}
else if(totalcholesterol >= 240 || totalcholesterol <= 279){ // 3 points
points += 3;
}
else if(totalcholesterol >=280){ // 4 points
points += 4;
}
// Third point
if(hdl >= 60) // Minus 1 point
{
points -= 1;
}
else if(hdl >= 50 || hdl <= 59){ // 1 point
points += 1;
}
else if(hdl <= 40){ // 2 points
points += 2;
}
// Fourth point
if(sbp == 120){ // 0 point
points += 0;
}
else if(sbp >= 120 || sbp <= 129){ // 1 point
points += 1;
}
else if(sbp >= 130 || sbp <= 139){ // 2 points
points += 2;
}
else if(sbp >= 140 || sbp <= 159){ // 3 points
points += 3;
}
else if(sbp >= 160){ // 4 points
points += 4;
}
// Fifth point
// 2 points
if(strIsSmoker.equals("Yes")){
points += 2;
}
else if(strIsSmoker.equals("No")){
points += 0;
}
totalPoints = points;
String strTotalPoints = String.valueOf(totalPoints);
Toast.makeText(getBaseContext(), "Your score is " + strTotalPoints, Toast.LENGTH_LONG).show();
}
else if(age >= 65 || age <= 69){
// First point
points += 12;
// Second point
if(totalcholesterol <= 160){ // 0 point
points += 0;
}
else if(totalcholesterol >= 160 || totalcholesterol <= 199){ // 1 points
points += 1;
}
else if(totalcholesterol >= 200 || totalcholesterol <= 239){ // 2 points
points += 2;
}
else if(totalcholesterol >= 240 || totalcholesterol <= 279){ // 3 points
points += 3;
}
else if(totalcholesterol >=280){ // 4 points
points += 4;
}
// Third point
if(hdl >= 60) // Minus 1 point
{
points -= 1;
}
else if(hdl >= 50 || hdl <= 59){ // 1 point
points += 1;
}
else if(hdl <= 40){ // 2 points
points += 2;
}
// Fourth point
if(sbp == 120){ // 0 point
points += 0;
}
else if(sbp >= 120 || sbp <= 129){ // 1 point
points += 1;
}
else if(sbp >= 130 || sbp <= 139){ // 2 points
points += 2;
}
else if(sbp >= 140 || sbp <= 159){ // 3 points
points += 3;
}
else if(sbp >= 160){ // 4 points
points += 4;
}
// Fifth point
// 2 points
if(strIsSmoker.equals("Yes")){
points += 2;
}
else if(strIsSmoker.equals("No")){
points += 0;
}
totalPoints = points;
String strTotalPoints = String.valueOf(totalPoints);
Toast.makeText(getBaseContext(), "Your score is " + strTotalPoints, Toast.LENGTH_LONG).show();
}
else if(age >= 70 || age <= 74){
// First point
points += 14;
// Second point
if(totalcholesterol <= 160){ // 0 point
points += 0;
}
else if(totalcholesterol >= 160 || totalcholesterol <= 199){ // 1 points
points += 1;
}
else if(totalcholesterol >= 200 || totalcholesterol <= 239){ // 1 points
points += 1;
}
else if(totalcholesterol >= 240 || totalcholesterol <= 279){ // 2 points
points += 2;
}
else if(totalcholesterol >=280){ // 2 points
points += 2;
}
// Third point
if(hdl >= 60) // Minus 1 point
{
points -= 1;
}
else if(hdl >= 50 || hdl <= 59){ // 1 point
points += 1;
}
else if(hdl <= 40){ // 2 points
points += 2;
}
// Fourth point
if(sbp == 120){ // 0 point
points += 0;
}
else if(sbp >= 120 || sbp <= 129){ // 1 point
points += 1;
}
else if(sbp >= 130 || sbp <= 139){ // 2 points
points += 2;
}
else if(sbp >= 140 || sbp <= 159){ // 3 points
points += 3;
}
else if(sbp >= 160){ // 4 points
points += 4;
}
// Fifth point
// 1 point
if(strIsSmoker.equals("Yes")){
points += 1;
}
else if(strIsSmoker.equals("No")){
points += 0;
}
totalPoints = points;
String strTotalPoints = String.valueOf(totalPoints);
Toast.makeText(getBaseContext(), "Your score is " + strTotalPoints, Toast.LENGTH_LONG).show();
}
else if(age >= 75 || age <= 79){
// First point
points += 16;
// Second point
if(totalcholesterol <= 160){ // 0 point
points += 0;
}
else if(totalcholesterol >= 160 || totalcholesterol <= 199){ // 1 points
points += 1;
}
else if(totalcholesterol >= 200 || totalcholesterol <= 239){ // 1 points
points += 1;
}
else if(totalcholesterol >= 240 || totalcholesterol <= 279){ // 2 points
points += 2;
}
else if(totalcholesterol >=280){ // 2 points
points += 2;
}
// Third point
if(hdl >= 60) // Minus 1 point
{
points -= 1;
}
else if(hdl >= 50 || hdl <= 59){ // 1 point
points += 1;
}
else if(hdl <= 40){ // 2 points
points += 2;
}
// Fourth point
if(sbp == 120){ // 0 point
points += 0;
}
else if(sbp >= 120 || sbp <= 129){ // 1 point
points += 1;
}
else if(sbp >= 130 || sbp <= 139){ // 2 points
points += 2;
}
else if(sbp >= 140 || sbp <= 159){ // 3 points
points += 3;
}
else if(sbp >= 160){ // 4 points
points += 4;
}
// Fifth point
// 1 point
if(strIsSmoker.equals("Yes")){
points += 1;
}
else if(strIsSmoker.equals("No")){
points += 0;
}
totalPoints = points;
String strTotalPoints = String.valueOf(totalPoints);
Toast.makeText(getBaseContext(), "Your score is " + strTotalPoints, Toast.LENGTH_LONG).show();
}
}
如果有人可以幫我優化我的代碼,我會很樂意欣賞它。提前致謝!
更新: 當我試圖從另一個年齡段選擇(40+),我一直得到的答案是不正確。
而是通過英里運行的代碼,你爲什麼不告訴我們你的問題究竟在哪裏? – ElefantPhace 2013-03-02 17:55:27
[SSCCE](http://sscce.org/)。 – 2013-03-02 17:56:19
@ElefantPhace正如我所說的,我想優化我的代碼,如果你能幫助我。 – 2013-03-02 17:56:21