商品折扣并未按照if条件语句的不同条件去执行
来源:2-4 编程练习
David_Cici
2021-01-11 20:43:05
问题描述:商品折扣并未按照if条件语句的不同条件去执行
相关截图:

相关代码:
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中添加打印语句:

2)也可以参考楼上同学给出的建议去修改。
祝学习愉快~
慕用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类型,输出语句里面直接调用该函数
代码在上面帮你改好了,但是我没编译,你试一下应该行
相似问题