为什么我代码跑出来的折后商品总价为: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行只需要保留一个调用的地方就可以了
相似问题