为什么我代码跑出来的折后商品总价为:135.375
来源:2-4 编程练习
有意思53
2020-09-03 01:47:31
我的代码块
public class DisCountDemo {
//根据商品总价输出折后总价
public static float disCount(float i){
float disPrice;
if(i>=200){
disPrice = i*0.85f;
}else if(i>=100){
disPrice = i*0.95f;
}else{
disPrice = i;
}
return disPrice;
}
public static void main(String[] args) {
//定义对象
DisCountDemo ac = new DisCountDemo();
//定义商品总价存放到变量中
float price = 150f;
//调用方法,输出折后商品总价
price = ac.disCount(price);
System.out.println("折后商品总价为:"+ac.disCount(price));
}
}答案居然跟效果图不符,不知道为什么,求老师解惑!

2回答
同学你好,上面同学回答的是正确的

这里同学调用了两次disCount方法,所以最后结果会不一样,同学将上面的注释后再试试
祝学习愉快
东窗白
2020-09-03
代码21行已经调用过disCount方法,price的值变为150*0.95=142.5;
代码22行再次调用disCount方法,这里实际输出的是price再次计算的结果也就是142.5*0.95=135.375
只需要计算一次折扣的价格,所以代码21行或22行只需要保留一个调用的地方就可以了
相似问题