老师,帮忙看下这个代码为什么运行不了?

老师,帮忙看下这个代码为什么运行不了?

import java.util.Scanner;

public class DisCountDemo {

    //根据商品总价输出折后总价

  public double DT(double all){

      if(all<100){

          return all;

      }else if(all>200){

          return all*0.85;

      }else{

          return all*0.95;

      }

  }

public static void main(String[] args) {

//定义对象

DisCountDemo cd =new DisCountDemo();

//定义商品总价存放到变量中

double all=150.0;


//调用方法,输出折后商品总价

System.out.println(cd.DT());

}

}


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

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

3回答
丨null丨 2018-10-12 11:52:31

//定义商品总价存放到变量中

double all=150.0;

//调用方法,输出折后商品总价

System.out.println(cd.DT());


这几句你要先把DT方法的运行结果储存到变量all里面 并 传入方法DT里all的参数

然后直接输出all就行了

//cd.DT(150)的运行结果等于all  括号内的150是传给方法DT里all的参数
double all = cd.DT(150);
System.out.println(all);

如果还不明白那就从看一遍吧 视频里都有(表达能力不怎么好 见谅)

好帮手慕查理 2018-10-11 11:46:02

您好,第一次代码:调用方法,输出折后商品总价应该是:System.out.println(cd.DT(all));。DT方法需要传参哦~第二次代码:调用方法cd.DT(all)即可,不需要使用println,因为已经在方法中进行了输出。祝学习愉快!

  • 提问者 Clark_Chan #1
    第二次代码的运行还是失败的。运行失败 Exception in thread "main" java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:862) at java.util.Scanner.next(Scanner.java:1485) at java.util.Scanner.nextInt(Scanner.java:2117) at java.util.Scanner.nextInt(Scanner.java:2076) at DisCountDemo.main(DisCountDemo.java:19) 请输入商品价格:
    2018-10-11 13:09:13
  • 好帮手慕查理 回复 提问者 Clark_Chan #2
    您好,DT方法应该是无返回值的,应该是public void DT(double all){ }。祝学习愉快!
    2018-10-11 13:38:22
提问者 Clark_Chan 2018-10-11 11:42:44

老师,这是我后面又重新做了一次,麻烦看下这个为什么还不行?http://img1.sycdn.imooc.com//climg/5bbec6b1000150ef09160697.jpg


  • 你定义的 DT方法,是由返回类型double的,但是方法中没有return语句,所以报错,missing return statement 没有返回内容
    2018-10-12 11:09:57
  • 这些东西在编程工具里运行吧 慕课网好像不支持键盘接收 用编程工具起码你错的地方还会告诉你就是别用快捷键就行(学习的时候用快捷键不好)
    2018-10-12 12:01:18
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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