#java
#java
Вопрос:
Заранее спасибо за любую помощь. Пожалуйста, обратите внимание, что я новичок. Ниже приведен код. Он выводит только значение операторов else, равное «Спасибо, что купили у нас», даже если вместо этого значение операторов if должно выводиться на консоль?
class Main {
String type;
double price;
boolean order;
public Main(String whatPizza, double costOfPizza, boolean yourOrder){
if (price > 10.00){
System.out.println("Thank you for spending over 10 pounds with us!");
} else {
System.out.println("Thank you for buying with us!");
}
type = whatPizza;
price = costOfPizza;
order = yourOrder;
}
public static void main(String[] args) {
//empty for now
Main personA = new Main("Pepperoni", 11.00, true);
Main personB = new Main("Cheese", 9.00, true);
}
}
Комментарии:
1. Вам нужно установить значения перед if-оператором. В противном случае цена по-прежнему имеет значение по умолчанию, равное нулю.
2. цена> 10,00 должна быть исправлена на costOfPizza> 10,00. (цена по умолчанию равна 0)
3. Основная проблема заключается в том, что у вас не должно быть такой логики в вашем конструкторе, поэтому if / else и печать должны быть в отдельном методе
Ответ №1:
Порядок вашего кода неправильный. При запуске if-оператора price не присваивается никакого значения. Прямо сейчас двойная переменная price всегда пуста, поэтому она никогда не превышает 10,00, поэтому является false и возвращает else . Это должно сработать:
class Main {
String type;
double price;
boolean order;
public Main(String whatPizza, double costOfPizza, boolean yourOrder){
type = whatPizza;
price = costOfPizza;
order = yourOrder
if (price > 10.00){
System.out.println("Thank you for spending over 10 pounds with us!");
} else {
System.out.println("Thank you for buying with us!");
}
;
}
public static void main(String[] args) {
//empty for now
Main personA = new Main("Pepperoni", 11.00, true);
Main personB = new Main("Cheese", 9.00, true);
}
}
Комментарии:
1. @benstackoverflow не забудьте отметить это как ответ 😉