なんらかの理由で、私は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);
}
*/
}
}
直接質問に関連していますが、読みやすくするためにcase文を使用して検討するかもしれません。https://docs.oracle.com/javase/tutorial/java /nutsandbolts/switch.html – user2366842
また、 'equalsIgnoreCase'。 –
http://idownvotedbecau.se/nodebugging/ – Oleg