请问我这两种写法是不是都可以

请问我这两种写法是不是都可以

方法一:

package com.Imooc.prictice;

public class Prictice6 {

public void Sale(double a) {

if(a>=200) {

a=a*0.8;

System.out.println("折后商品总价为:"+a);

}else if((a>=100)&(a<=199)) {

a=a*0.95;

System.out.println("折后商品总价为:"+a);

}else {

System.out.println("折后商品总价为:"+a);

}

}

public static void main(String[] args) {

Prictice6 sc=new Prictice6();

sc.Sale(150);

}

}

方法二:

package com.Imooc.prictice;

public class Prictice7 {

public double Sale() {

double a = 0;

if(a>=200) {

a=a*0.8;

System.out.println("折后商品总价为:"+a);

}else if((a>=100)&(a<=199)) {

a=a*0.95;

System.out.println("折后商品总价为:"+a);

}else {

System.out.println("折后商品总价为:"+a);

}

return a;

}

public static void main(String[] args) {

Prictice6 sc=new Prictice6();

sc.Sale(150);

}

}


正在回答 回答被采纳积分+1

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

2回答
好帮手慕小脸 2020-02-13 12:40:10

同学你好,同学说的情况是按照第二种方法写得到的结果依然是正确答案吗?

老师测试的结果如下:

http://img1.sycdn.imooc.com//climg/5e44d2d109a8f57d06570617.jpg

如果不是上述描述,请同学提供代码,方便老师解决问题。

如果我解决了你的疑惑,请采纳,祝学习愉快~


  • 提问者 你午睡了嘛4287632 #1
    老师您看我的代码是这样的 输出结果是142.5 package com.Imooc.prictice; public class Prictice7 { public double Sale() { double a = 0; if(a>=200) { a=a*0.8; System.out.println("折后商品总价为:"+a); }else if((a>=100)&(a<=199)) { a=a*0.95; System.out.println("折后商品总价为:"+a); }else { System.out.println("折后商品总价为:"+a); } return a; } public static void main(String[] args) { Prictice6 sc=new Prictice6(); sc.Sale(150); } }
    2020-02-13 14:53:11
  • 同学你好,由于老师在一个类测试的,非常抱歉,同学第二种写法是正确的,很棒哦! 祝学习愉快~
    2020-02-13 15:05:20
  • 好的 谢谢老师!
    2020-02-13 19:36:52
好帮手慕小脸 2020-02-13 12:03:40

同学你好,第一种方法完成得不错,第二种是不正确的哦。

在Sale()方法中小括号并没有定义任何接受类型,所以main方法中会出错。具体修改如下:

http://img1.sycdn.imooc.com//climg/5e44ca7c09bbdecf06750741.jpg

如果我解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 你午睡了嘛4287632 #1
    老师 那为什么我在定义方法的时候给double赋值为0 最后输出的还会是正确答案
    2020-02-13 12:06:07
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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