-
Help me with the code
hello guys, i would really appreciate it if you helped me with the code.. How can i change the code so it just accepts letters r and c. and give error message for other character.
here is the code
import java.text.NumberFormat;
import java.util.*;
public class ValidatedInvoiceApp
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String choice = "y";
while (!choice.equalsIgnoreCase("n"))
{
// get the input from the user
System.out.print("Enter customer type (R/C): ");
String customerType = sc.next();
System.out.print("Enter subtotal: ");
double subtotal = sc.nextDouble();
double discountPercent = getDiscountPercent(customerType, subtotal);
// calculate the discount amount and total
double discountAmount = subtotal * discountPercent;
double total = subtotal - discountAmount;
// format and display the results
NumberFormat currency = NumberFormat.getCurrencyInstance();
NumberFormat percent = NumberFormat.getPercentInstance();
System.out.println(
"Discount percent: " + percent.format(discountPercent) + "\n" +
"Discount amount: " + currency.format(discountAmount) + "\n" +
"Total: " + currency.format(total) + "\n");
// see if the user wants to continue
System.out.print("Continue? (y/n): ");
choice = sc.next();
System.out.println();
}
}
private static double getDiscountPercent(String customerType, double subtotal)
{
// get the discount percent
// double discountPercent = .0;
if (customerType.equalsIgnoreCase("R"))
{
if (subtotal < 100)
discountPercent = 0;
else if (subtotal >= 100 && subtotal < 250)
discountPercent = .1;
else if (subtotal >= 250 && subtotal < 500)
discountPercent = .25;
else
discountPercent = .3;
}
else if (customerType.equalsIgnoreCase("C"))
discountPercent = .2;
return discountPercent;
}
}
-
You will need to use an if statement and calls to equals method. Just like you did when checking choice is "y" or "n".
-
just check 'R/C' using if condition in main method only. It will me more appropriate.