Возникли проблемы с простой Java-программой
Попытка написать программу на Java для этого: Duke Shirts продает футболки Java по цене $24,95 каждая, но возможны скидки на следующие количества: 1 или 2 футболки, без скидок и общая стоимость доставки составляет 10,00 $, 3-5 футболок, скидка 10% и общая стоимость доставки составляет 8,00 $ 6-10 футболок, скидка составляет 20%, общая стоимость доставки составляет 5,00 $ 11 или более футболок, скидка составляет 30% и доставка бесплатная. Напишите программу на Java, которая запрашивает у пользователя необходимое количество рубашек. Затем программа должна распечатать расширенную цену на футболки, стоимость доставки и общую стоимость заказа. Используйте формат валюты, где это уместно.
Вот мой код:
import java.lang.Math;
import java.util.Scanner;
public class Excercise2_3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("How many shirts do you need?");
double shirts = input.nextInt();
if (shirts <= 2)
System.out.printf("The extended cost is : $%.2", (shirts * 24.95));
System.out.printf("The shipping charges are $10.00");
System.out.printf("The total cost is : $%.2", (shirts * 24.95) + 10);
if (shirts > 2 && shirts <= 5)
System.out.printf("The extended cost is : $%.2", ((shirts * 24.95)*.10));
System.out.printf("The shipping charges are $8.00");
System.out.printf("The total cost is : $%.2", ((shirts * 24.95)*.10) + 8);
if (shirts > 5 && shirts <= 10)
System.out.printf("The extended cost is : $%.2", ((shirts * 24.95)*.20));
System.out.printf("The shipping charges are $5.00");
System.out.printf("The total cost is : $%.2", ((shirts * 24.95)*.20) + 5);
if (shirts > 10)
System.out.printf("The extended cost is : $%.2", ((shirts * 24.95)*.00));
System.out.printf("Shipping is free!");
System.out.printf("The total cost is : $%.2", ((shirts * 24.95)*.30));
}
}
Может кто-нибудь пролить свет на то, почему он не компилируется правильно? Спасибо!
1 ответ
Вы пропускаете свои фигурные скобки вокруг операторов if. Также ваша строка формата printf должна быть %.2f
, Вы скучали по f
и вы пропустили переводы строки.
import java.util.Scanner;
public class TempApp {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("How many shirts do you need?");
double shirts = input.nextInt();
if (shirts <= 2) {
System.out.printf("The extended cost is : $%.2f\n", (shirts * 24.95));
System.out.printf("The shipping charges are $10.00\n");
System.out.printf("The total cost is : $%.2f\n", (shirts * 24.95) + 10);
}
if (shirts > 2 && shirts <= 5) {
System.out.printf("The extended cost is : $%.2f\n", ((shirts * 24.95) * .10));
System.out.printf("The shipping charges are $8.00\n");
System.out.printf("The total cost is : $%.2f\n", ((shirts * 24.95) * .10) + 8);
}
if (shirts > 5 && shirts <= 10) {
System.out.printf("The extended cost is : $%.2f\n", ((shirts * 24.95) * .20));
System.out.printf("The shipping charges are $5.00\n");
System.out.printf("The total cost is : $%.2f\n", ((shirts * 24.95) * .20) + 5);
}
if (shirts > 10) {
System.out.printf("The extended cost is : $%.2f", ((shirts * 24.95) * .00));
System.out.printf("Shipping is free!");
System.out.printf("The total cost is : $%.2f", ((shirts * 24.95) * .30));
}
}
}