операторы if else возвращают значение else, даже когда они должны возвращать значение if?

#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 не забудьте отметить это как ответ 😉