Muy nuevo en la programación. Me gustaría que el usuario reciba un descuento del 10% si él / ella es más de 60 (edad> 60) y un 5% de descuento si él / ella está entre las mayores de 55 años e igual a 60. (60 <= edad> 55). Sé que mi código es totalmente erróneo, pero me gustaría solucionar este paso a paso, si es posible.
import java.util.*;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int price, age;
double tax, payAmount;
double discountRate_56_to_60 = 0.05;
double discountRate_60_above = 0.1;
payAmount = price * tax;
System.out.print("Price?");
price = input.nextInt();
System.out.print("Tax(%)?");
tax = input.nextDouble();
System.out.print("Age?");
age = input.nextInt();
System.out.println("You pay: $");
payAmount = input.nextDouble();
if (age > 55) {
payAmount;
}
else if (age >= 60) {
payAmount;
}
}
}
Hay varios problemas, el primero es que la segunda sentencia if else if (age >= 60)
no se alcanza nunca, porque si la edad es superior al 60 la persona es también más de 55. Para resolver que debe cambiar las declaraciones como esta:
if(age >+ 60){
// do something
} else if(age >= 55){
// do something different
}
A continuación, intenta inicializar payAmount antes de tener los precios inicializado y el impuesto. Usted debe al cálculo después de que el usuario entró en su edad y el precio, etc.
// User enters all the stuff
payAmount = price * tax;
Y a continuación, se puede aplicar la tasa de descuento justo en las sentencias if.
Y si yo sería que yo anunciare el entero price
como un doble, ya que podría ser que el precio es como $ 16.50.
También podrías comprobar si el número introducido es un número entero o un doble a excepciones evitar.