Вот фрагмент моего кода для задания. Я не могу заставить логический флаг работать правильно. Когда я пытаюсь понять это, либо каждое имя получает скидку, либо никакое имя не получает скидку. Чтобы уточнить имя, Майк или Диана должны дать скидку.Не уверен, что я делаю неправильно здесь (Boolean flag)
String firstName; //user's first name
boolean discount = false; //flag, true if user is eligible for discount
int inches; //size of the pizza
char crustType; //code for type of crust
String crust; //name of crust
double cost = 12.99; //cost of the pizza
final double TAX_RATE = .08; //sales tax rate
double tax; //amount of tax
char choice; //user's choice
String input; //user input
String toppings = "Cheese "; //list of toppings
int numberOfToppings = 0; //number of toppings
//prompt user and get first name
System.out.println("Welcome to Mike and Diane's Pizza");
System.out.print("Enter your first name: ");
firstName = keyboard.nextLine();
if (firstName == "mike" || firstName == "diana" || firstName == "Mike" || firstName == "Diana" ||
firstName == "MIKE" || firstName == "DIANA")
{
discount = true;
}
if (discount = true)
{
cost -= 2.0;
System.out.println ("You are eligible for a $2 discount.");
Что происходит не так? – PeterK
В дополнение к сопоставлениям строк вы должны заменить 'if (discount = true)' на 'if (discount == true)'. Первый присваивает значение переменной 'discount', вторая - comparaison. – AntonH
Сравнение строк @SotiriosDelimanolis не является единственной проблемой здесь –