为什么我代码跑出来的折后商品总价为: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));
	}
}

答案居然跟效果图不符,不知道为什么,求老师解惑!

http://img.mukewang.com/climg/5f4fda7309e6437717470461.jpg

写回答

2回答

好帮手慕阿园

2020-09-03

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

http://img.mukewang.com/climg/5f50651609c854ec05880122.jpg

这里同学调用了两次disCount方法,所以最后结果会不一样,同学将上面的注释后再试试

祝学习愉快

1

东窗白

2020-09-03

代码21行已经调用过disCount方法,price的值变为150*0.95=142.5;

代码22行再次调用disCount方法,这里实际输出的是price再次计算的结果也就是142.5*0.95=135.375

只需要计算一次折扣的价格,所以代码21行或22行只需要保留一个调用的地方就可以了

1

0 学习 · 16556 问题

查看课程