2017-11-09 3 views
-7

なんらかの理由で、私は4つの席のチケットを取得できません。私はSystem.out.println(vatTotalNoAgeLess5)を2番目のブロックの外に置くと217.8を出力しますが、もしそれができなければ4つのoap/childチケットのコストが得られます195.65で+ 4つのディナー* 1.21。私の2番目のifとelse if文が間違った答えを返す

public static void main(String[] args) { 
    //data dictionary 
    double standT, terraceT, grossTick, handlingFee, ticketDiscount, flatFee, totalCost, agetick, over5tick, 
    vatTotal, totaltick, dinnerPrice, dinnerTotal, vatTotalForAge, vatTotalNoAgeLess5; 

    Scanner in = new Scanner(System.in); 
    //gathering basic inputs from user 
    System.out.println("Input your name "); 
    String name = in.next(); 
    System.out.println("Input your mobile number "); 
    String mobile = in.next(); 
    System.out.println("How many stand tickets do you want? "); 
    int standTick = in.nextInt(); 
    System.out.println("How many terrace tickets do you want? "); 
    int terraceTick = in.nextInt(); 
    System.out.println("OAP/Student tickets? y/n"); 
    String ageDiscount = in.next(); 
    //basic fees as variables 
    standT = 25 * standTick; 
    terraceT = 20 * terraceTick; 
    handlingFee = 7.50; 
    dinnerPrice = 20; 

    //defining the total cost variables 
    grossTick = terraceT + standT; 

    if(ageDiscount.equals("Y") || ageDiscount.equals("y")) 
    { 
     //System.out.println(grossTick); 
     agetick = grossTick * 0.85; 
     System.out.println("Before vat the total is " + agetick); 
    } 
    else if (ageDiscount.equals("N") || ageDiscount.equals("n")) 
    { 
     System.out.println("Before vat the total is " + grossTick); 
    } 
    else if(standTick + terraceTick >= 5) 
    { 
     over5tick = grossTick * 0.82; 
     System.out.println("Before vat the total is " + over5tick); 
    } 
    else if (standTick + terraceTick < 5) 
    { 
     System.out.println("Before vat the total is " + grossTick); 
    } 
    else if (ageDiscount.equals("Yes") || ageDiscount.equals("yes") && standTick + terraceTick >= 5) 
    { 
     over5tick = grossTick * 0.82; 
     System.out.println("Before vat the total is " + over5tick); 
    } 


    System.out.println("Will you be having dinner? y/n "); 
    String havingDinner = in.next(); 

    if(havingDinner.equals("Y") || havingDinner.equals("y") || ageDiscount.equals("Y") || ageDiscount.equals("y")) 
    { 
     agetick = (grossTick * 0.85); 
     dinnerTotal = dinnerPrice * (standTick + terraceTick); 
     vatTotalForAge = ((dinnerTotal + agetick) * 1.21); 
     System.out.println(vatTotalForAge); 
    } 
    else if (havingDinner.equals("Y") || havingDinner.equals("y")||ageDiscount.equals("N") || ageDiscount.equals("n")) 
    { 
     dinnerTotal = dinnerPrice * (standTick + terraceTick); 
     vatTotalNoAgeLess5 = ((dinnerTotal + grossTick) * 1.21); 
     System.out.println(vatTotalNoAgeLess5); 
    } 



    /* 
    if(havingDinner.equals("Y") || havingDinner.equals("y")|| ageDiscount.equals("Y") || ageDiscount.equals("y")) 
    { 
     agetick = (grossTick * 0.85); 
     dinnerTotal = dinnerPrice * (standTick + terraceTick); 
     vatTotalForAge = ((dinnerTotal + agetick) * 1.21); 
     System.out.println(vatTotalForAge); 
    } 

    else if(havingDinner.equals("Y") || havingDinner.equals("y") || ageDiscount.equals("N") || ageDiscount.equals("n")) 
    { 
     dinnerTotal = dinnerPrice * (standTick + terraceTick); 
     vatTotalNoAgeLess5 = ((dinnerTotal + grossTick) * 1.21); 
     System.out.println("is"); 

    } 
    dinnerTotal = dinnerPrice * (standTick + terraceTick); 
    vatTotalNoAgeLess5 = ((dinnerTotal + grossTick) * 1.21); 
    System.out.println(vatTotalNoAgeLess5); 



    /* 
    if(dinner > 0 || ageDiscount.equals("Yes") || ageDiscount.equals("yes")) 
    { 
     System.out.println("Total of dinner and vat is " +((agetick + dinner)*1.21)); 
    } 
    else if (dinner > 0||ageDiscount.equals("No") || ageDiscount.equals("no")) 
    { 
    System.out.println("Total of dinner and vat is " + ((grossTick + dinner)*1.21)); 
    } 
    else if(dinner > 0||standTick + terraceTick >= 5) 
    { 
     System.out.println("Total of dinner and vat is " + (over5tick*1.21 + dinner)); 
    } 
    else if (dinner > 0 ||standTick + terraceTick < 5) 
    { 
     System.out.println("Total of dinner and vat is " + ((grossTick*1.21) + dinner)); 
    } 
    else if (dinner > 0||ageDiscount.equals("Yes") || ageDiscount.equals("yes") && standTick + terraceTick >= 5) 
    { 
     System.out.println("Total of dinner and vat is " + (over5tick*1.21 + dinner)); 
    } 
    else if (dinner < 1 || ageDiscount.equals("No") || ageDiscount.equals("no")) 
    { 
    System.out.println("Total including and vat is " + grossTick*1.21); 
    } 
    else if(dinner < 1 ||standTick + terraceTick >= 5) 
    { 
     System.out.println("Total including and vat is " + over5tick*1.21); 
    } 
    else if (dinner < 1 ||standTick + terraceTick < 5) 
    { 
     System.out.println("Total including and vat is " + grossTick*1.21); 
    } 
    else if (dinner < 1 || ageDiscount.equals("Yes") || ageDiscount.equals("yes") && standTick + terraceTick >= 5) 
    { 
     System.out.println("Total including and vat is " + over5tick*1.21); 
    } 
    */ 
} 

}

+0

直接質問に関連していますが、読みやすくするためにcase文を使用して検討するかもしれません。https://docs.oracle.com/javase/tutorial/java /nutsandbolts/switch.html – user2366842

+0

また、 'equalsIgnoreCase'。 –

+2

http://idownvotedbecau.se/nodebugging/ – Oleg

答えて

1

のBigDecimal使用例

vatTotalNoAgeLess5 = BigDecimal.valueOf(dinnerTotal).add(BigDecimal.valueOf(grossTick)).multiply(BigDecimal.valueOf(1.21)).doubleValue(); 

if文

if ((havingDinner.equals("Y") || havingDinner.equals("y")) && (ageDiscount.equals("Y") || ageDiscount.equals("y"))) { 
    agetick = (grossTick * 0.85); 
    dinnerTotal = dinnerPrice * (standTick + terraceTick); 
    vatTotalForAge = ((dinnerTotal + agetick) * 1.21); 
    System.out.println(vatTotalForAge); 
} else if ((havingDinner.equals("Y") || havingDinner.equals("y")) && (ageDiscount.equals("N") || ageDiscount.equals("n"))) { 
    dinnerTotal = dinnerPrice * (standTick + terraceTick); 
    vatTotalNoAgeLess5 = ((dinnerTotal + grossTick) * 1.21); 
    System.out.println(vatTotalNoAgeLess5); 
} 
+0

私は夕食に何を言うとき、それは私に217を付与するものではありませんが、私はそう言うとき、それは195まだそのがきても、おかげであなたの声明やグループであれば、あなたの条件((havingDinner.equals(「Y」)|| havingDinnerをチェック –

+1

言います.equals( "y"))&&(ageDiscount.equals( "Y")|| ageDiscount.equals( "y"))) – crammeur