代码运行问题

代码运行问题

# 具体遇到的问题
视频中讲的代码我课下改了一下,代码如图所示,为什么我写的需要连续运行两次才出结果,就好像第一次输入没有用。
# 相关课程内容截图
http://img1.sycdn.imooc.com//climg/5fea84c3092aa4f619201080.jpg

1
package com.imooc.method;<br><br>import java.util.Scanner;<br><br>public class AreaDemo {<br>  //<br>  public int area(){<br>      System.out.println("请输入矩形的长:");<br>     System.out.println("请输入矩形的宽:");<br>     Scanner sc1 = new Scanner(System.in);<br>       int length = sc1.nextInt();<br>     Scanner sc2 = new Scanner(System.in);<br>       int width = sc2.nextInt();<br>      int getArea = length * width;<br>       return getArea;<br> }<br><br>   public static void main(String[] args) {<br>        AreaDemo ad = new AreaDemo();<br>       ad.area();<br>      System.out.println("此矩形的面积为:" +ad.area());<br><br>  }<br><br>}<br>


正在回答

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

2回答

同学你好,

1、这里打印语句也执行了,只是停留在main方法中,紧接着调用area()方法,执行完毕后结果返回,打印语句展示出来

http://img1.sycdn.imooc.com//climg/5febe0070932f67306540475.jpghttp://img1.sycdn.imooc.com//climg/5febe1f309121e4406350617.jpg

2、因为浮点数的精度问题,所以得出的结果不那么准确

祝学习愉快~

好帮手慕小脸 2020-12-29 11:50:39

同学你好,

1、因为在main方法中调用了两遍area()方法,所以需要连续运行两次才出结果。修改后的代码如下:

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

2、一个方法中定义一个Scanner对象就可以了,优化如下:

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

祝学习愉快~

  • 提问者 刘徽 #1

    这是我修改之后的代码,那老师我再问一下,各个方法在主方法中的运行顺序是怎么样的?

    在main方法中按从上到下、从左到右的顺序的话应该是最先输出此矩形的面积为:,然后才是area方法中的内容,”ad.area()“在此矩形的面积为:后面,但是从运行结果来看为什么此矩形的面积为:”是在最后输出呢?

    代码及运行结果:

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

    1
    package com.imooc.method;<br><br>import java.util.Scanner;<br><br>public class AreaDemo {<br>   public double area() {<br>      System.out.println("请输入矩形的长:");<br>     Scanner sc = new Scanner(System.in);<br>        double length = sc.nextDouble();<br>        System.out.println("请输入矩形的宽:");<br>     double width = sc.nextDouble();<br>     double getArea = length * width;<br>        return getArea;<br> }<br><br>   public static void main(String[] args) {<br>        AreaDemo ad = new AreaDemo();<br>       System.out.println("此矩形的面积为:" +ad.area());<br><br>  }<br><br>}<br>


    2020-12-29 23:56:41
  • 提问者 刘徽 #2
    1
    package com.imooc.method;<br><br>import java.util.Scanner;<br><br>public class AreaDemo {<br>   public void area() {<br>        System.out.println("请输入矩形的长:");<br>     Scanner sc = new Scanner(System.in);<br>        double length = sc.nextDouble();<br>        System.out.println("请输入矩形的宽:");<br>     double width = sc.nextDouble();<br>     double getArea = length * width;<br>        System.out.println("此矩形的面积为:" +getArea);<br>    }<br><br>   public static void main(String[] args) {<br>        AreaDemo ad = new AreaDemo();<br>       ad.area();<br>      System.out.println("此矩形的面积为" );<br><br> }<br><br>}<br>

    这个代码这么写的话为什么运算结果后面有那么多0还有一个2?

    代码截图:

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

    2020-12-30 00:04:24
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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