2016-10-02 80 views
-1

我對編碼非常陌生,迄今爲止只完成了幾個小時的YouTube視頻學習。我正在嘗試完成練習代碼並面臨一些麻煩。Int將無法正常工作

我附上了以下代碼的一部分。當我在(10,12,14和16)中輸入值時,代碼仍然響應「錯誤的響應」。除此之外,以下行不正常運行。它沒有給我選擇地殼類型的選項。如果有人有任何建議,請讓我知道。 地殼問題:

System.out.println("What type of crust would you like? "); 
System.out.print("(H)and-tossed, (T)hin-crust, or (D)eep-dish: "); 
crust = keyboard.nextLine(); 

INT值問題:

if (size.equals(" 10 ")) { 
    pizzaPrice = SM_Price; 
} else if (size.equals(" 12 ")) { 
    pizzaPrice = MED_Price; 
} else if (size.equals(" 14 ")) { 
    pizzaPrice = LG_Price; 
} else if (size.equals(" 16 ")) { 
    pizzaPrice = XL_Price; 
} 
else { System.out.println("Wrong repsonse. "); 

謝謝。

+0

爲什麼不使用'nextInt'並比較整數文字?否則,你是從字面上比較空間,空間,整數,空間,空間。 – Li357

+0

*爲什麼*你向我們展示瞭如何輸入'crust',然後顯示使用'size'的代碼?第一部分沒有告訴我們「尺寸」來自哪裏。第二部分甚至不使用「外殼」。 – Andreas

回答

0

如果size是一個int,那麼對字符串使用大小將不起作用。即size.equals(" 10 ")將不會與size.equals(10)相同。

也不會是相同的size.equals("10")這是從" 10 "

3

如此不同,請記住,常量16"16"" 16 "都是不同的事情,非彼此相等。

另一件事是,你需要告訴我們你的類型是什麼。由於Java是靜態類型的,該類型信息實際上可以幫助確定您獲得的行爲。

0

您還沒有在任何地方定義size,所以不可能說。

我懷疑但是你的問題是,要麼size是不同類型的,你不要使用equals比較什麼,或者是因爲你之前,你的串號後有空格:" 12 "

0

請參閱User Input not working with keyboard.nextLine() and String (Java)您的nextLine()問題。

至於你的其他問題,你需要知道你聲明的尺寸是什麼類型。 如果您使用String size = "10";例如它聲明爲字符串,那麼你是相當接近:

在1號線只需更改" 10 ""10"(無空格,如"10".equals(" 10 ") == false),去小薄餅。