我是初學者,所以這個結果我得到了我的if else語句的一個條件,正在讓我大開眼界。除了QtyCalc變量大於等於100的情況外,一切正常。Finprice變量被列爲光盤變量,我找不到原因。幫幫我?if if else語句中的意外結果
import javax.swing.JOptionPane;
public class SoftwareSales {
public static void main(String[] args) {
final int price = 99;
String Qty;
double QtyCalc, preprice, Finprice, disc;
Qty = JOptionPane.showInputDialog(null, "How many packages will you buy?");
QtyCalc = Double.parseDouble(Qty);
preprice = QtyCalc * price;
if (QtyCalc >= 100) {
disc = (preprice * (0.5));
Finprice = (preprice - disc);
JOptionPane.showMessageDialog(null, "Your discount is: " + disc + ".\n" + "Your final price is: " + Finprice + ". ");
} else if (QtyCalc >= 50 && QtyCalc <= 99) {
disc = (preprice * 0.4);
Finprice = (preprice - disc);
JOptionPane.showMessageDialog(null, "Your discount is: " + disc + ".\n" + "Your final price is: " + Finprice + ". ");
} else if (QtyCalc >= 20 && QtyCalc <= 49) {
disc = (preprice * 0.3);
Finprice = (preprice - disc);
JOptionPane.showMessageDialog(null, "Your discount is: " + disc + ".\n" + "Your final price is: " + Finprice + ". ");
} else if (QtyCalc >= 10 && QtyCalc <= 19) {
disc = (preprice * 0.2);
Finprice = (preprice - disc);
JOptionPane.showMessageDialog(null, "Your discount is: " + disc + ".\n" + "Your final price is: " + Finprice + ". ");
} else if (QtyCalc < 10 && QtyCalc >= 1) {
disc = 0;
Finprice = 0;
JOptionPane.showMessageDialog(null, "Sorry, there is no discount for purchases less than 10." + " Your price is: " + preprice);
} else {
JOptionPane.showMessageDialog(null, "You have entered an invalid number.");
}
disc = 0;
Finprice = 0;
System.exit(0);
}
}
您正在使'disc'等於'preprice'和'Finprice'的一半等於另一半,因此它們是相等的。哪裏不對? – madth3 2013-02-19 01:36:51
我得出結論,我應該更頻繁地離開計算機並喝點咖啡。我完全錯過了那裏的明顯(拍拍他的額頭)。感謝大家指出,請不要太多地笑:) – Jim 2013-02-19 01:57:41