商品折扣并未按照if条件语句的不同条件去执行

来源:2-4 编程练习

David_Cici

2021-01-11 20:43:05

问题描述:商品折扣并未按照if条件语句的不同条件去执行

相关截图:

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

相关代码:

package com.imooc.method;
import java.util.Scanner;
public class DisCountDemo {

	//根据商品总价输出折后总价
	//没看出为何没有按照条件执行... 哈哈,麻烦点拨一下~
	public void discount(double total) {
		if(total<100) {
			total=total*1;
		}else if(total>=100 && total<200){
			total=total*0.95;
		}else{
			total=total*0.85;
		}

	}

	public static void main(String[] args) {
		//定义商品总价存放到变量中
		double total;
		System.out.println("您买的商品总价为: " );
		Scanner sc = new Scanner(System.in);
		total = sc.nextDouble();
		//定义对象
		DisCountDemo DisCountDemo = new DisCountDemo();
		//调用方法,输出折后商品总价
		DisCountDemo.discount(total);
		System.out.println("折后商品总价为: " +total);
	}
}


尝试过的解决方式:N/A

谢谢啦

写回答

2回答

好帮手慕小脸

2021-01-12

同学你好,上述代码其实是按照"if条件语句的不同条件去执行"的,这里之所以输入总价为多少,折后价就是多少的原因是因为同学在main方法中直接输出是键盘录入的值。

1)如果在源代码基础上修改,同学可以在if..else if ..else中添加打印语句:

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

2)也可以参考楼上同学给出的建议去修改。

祝学习愉快~


0

慕用8117612

2021-01-11

public double discount(double total) {
if(total<100) {
return total*1;
}else if(total>=100 && total<200){
​return total*0.95;
}else{
return total*0.85;
}
System.out.println("折后商品总价为: " +DisCountDemo.discount(total));

因为你的数据是传到discount方法里面的,方法里面操作的是方法体定义的total变量,如果按照你写的话输出的是main方法里面的total变量,没有任何变化。

建议将方法改为返回double类型,输出语句里面直接调用该函数

代码在上面帮你改好了,但是我没编译,你试一下应该行

0

0 学习 · 16556 问题

查看课程