为什么total_amount并且tax_amount在下面的println语句中将它们连接在一起而不是作为数字加在一起?
public class Test{
int total_amount,tax_amount;
public void cal(int total_amount,int tax_amount)
{
System.out.println("Total amount : "+total_amount+tax_amount);
}
public static void main(String[] args) {
new Test().cal(100, 20);
}
}
Output Total amount : 10020
Expected Total amount : 120
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 16
这是因为运营商的优先权.基本上,您的代码相当于:
System.out.println(("Total amount : " + total_amount) + tax_amount);
Run Code Online (Sandbox Code Playgroud)
所以,当它total_amount是100,并且tax_amount是20时,最终会:
System.out.println(("Total amount : " + 100) + 20);
Run Code Online (Sandbox Code Playgroud)
评估为:
System.out.println("Total amount : 100" + 20);
Run Code Online (Sandbox Code Playgroud)
评估为:
System.out.println("Total amount : 10020");
Run Code Online (Sandbox Code Playgroud)
选项:
使用括号显示您希望如何对操作进行分组:
System.out.println("Total amount : " + (total_amount + tax_amount));
Run Code Online (Sandbox Code Playgroud)首先执行求和,并将其存储在一个新变量中:
int totalIncludingTax = total_amount + tax_amount;
System.out.println("Total amount : " + totalIncludingTax);
Run Code Online (Sandbox Code Playgroud)作为附注,我建议:
underscores_separating_words,taxAmount而不是使用tax_amounttotal_amount然后用标签打印不同的东西Total amount使用代码格式,您最终会得到:
public class Test {
public static void main(String[] args) {
calculateTotal(100, 20);
}
private static void calculateTotal(int preTaxTotal, int tax) {
int totalIncludingTax = preTaxTotal + tax;
System.out.println("Total amount: " + totalIncludingTax);
}
}
Run Code Online (Sandbox Code Playgroud)
(你还应该考虑你要为非整数价格做什么......我建议使用整数,但要使用美分/便士/任何数字,或BigDeciml用来表示价格.)
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |