老师,请问怎么改

老师,请问怎么改

public class Demo1 {
	public void coun(int x) {
		if(x<100) {
			
		}else if(x>100 && x<199) {
			x *=0.95 ;
		}else if(x>200){
			x *=0.85 ;
		}
	}
	public static void main(String[] args) {
		Demo1 d = new Demo1();
		System.out.println("请输入商品总价");
		Scanner sc = new Scanner(System.in);
		int x = sc.nextInt();
		d.coun(x);
		System.out.println("折后商品总价为:"+x);
	}
}

我输出结果,得不到140.

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,同学在count()方法中对价格进行了判断和折扣,但是得到的结果并没有返回给主方法,所以造成了主方法中输出的价格是原价,修改方法是在定义count()方法其返回值类型为double,在方法中定义double类型变量price,并初始化,然后判断价格并将折扣后的价格赋值给price,最后返回price,在主方法中,定义double变量接收count()方法的返回值并输出。

修改后代码为:

public class Demo1 {
    public double coun(int x) {
    	double price = 0.0;
        if(x<100) {
             price = x;
        }else if(x>100 && x<199) {
            price = x*0.95 ;
        }else if(x>200){
            price = x * 0.85 ;
        }
        return price;
    }
    public static void main(String[] args) {
        Demo1 d = new Demo1();
        System.out.println("请输入商品总价");
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        double price = d.coun(x);
        System.out.println("折后商品总价为:"+price);
    }

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快!

  • qq_未命名_ekuzGO 提问者 #1
    哦哦,那请问下,我方法里面 返回的是price,为什么第18行double price = d.coun(x);要写参数列表x?为什么不能直接写price。
    2018-11-21 23:51:39
  • 因为同学在主方法中定义了x用来接收从键盘输入的数据,这个x是同学输入的价格,d.count(x)是将输入的价格传入到count()方法中,然后定义double price接收从count()方法返回的值。如果同学在主方法中定义的price接收从键盘输入的值,那么参数要用price。祝:学习愉快~
    2018-11-22 09:27:45
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师