![](/img/trans.png)
[英]Java: indexOf and put methods - I'm not sure what I'm doing wrong in these methods
[英]Not sure what i'm doing wrong here (Boolean flag)
這是我的作業代碼段。 我似乎無法使布爾標志正常工作。 當我嘗試找出答案時,每個名稱都會獲得折扣,或者每個名稱都不會獲得折扣。 為了澄清名稱,Mike或Diana應該給予折扣。
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.");
首先,為了比較字符串,請不要使用==
。 您需要按照此SO問題使用String#equals()
方法。
if (firstName == "mike" || firstName == "diana" || firstName == "Mike" || firstName == "Diana" || firstName == "MIKE" || firstName == "DIANA")
將被替換
if (firstName.equals("mike") || firstName.equals("diana") || firstName.equals("Mike") || firstName.equals("Diana") || firstName.equals("MIKE") || firstName.equals("DIANA"))
但是,正如Gavin在對原始問題的評論中所說的那樣,最好將整個字符串轉換為大寫或小寫,以減少比較。 或者,按照Pshemo的評論,使用equalsIgnoreCase()
。
您還需要更改:
if (discount = true)
這將true
的值分配給變量discount
,以
if (discount == true)
或者,根據Pshemo的評論,
if (discount)
我已經用日食檢查了您的代碼。 使用
if(firstName == "mike" || firstName == "diana" || firstName == "Mike" || firstName == "Diana" ||firstName == "MIKE" || firstName == "DIANA")
是問題,因為比較這樣的字符串時遇到問題。 您必須將其更改為
if (firstName.equals("mike")){
discount = true;
}
然后請記住,折扣是一個布爾變量。 因此,您不必比較它是否正確。
if (discount) //if will check whether it's true or not if provided with a condition,discount is boolean, so need of comparison
對於布爾運算符將非常簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.