代码运行问题

代码运行问题

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

​package com.imooc.method;

import java.util.Scanner;

public class AreaDemo {
//
public int area(){
System.out.println("请输入矩形的长:");
System.out.println("请输入矩形的宽:");
Scanner sc1 = new Scanner(System.in);
int length = sc1.nextInt();
Scanner sc2 = new Scanner(System.in);
int width = sc2.nextInt();
int getArea = length * width;
return getArea;
}

public static void main(String[] args) {
AreaDemo ad = new AreaDemo();
ad.area();
System.out.println("此矩形的面积为:" +ad.area());

}

}


正在回答

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

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

    package com.imooc.method;

    import java.util.Scanner;

    public class AreaDemo {
    public double area() {
    System.out.println("请输入矩形的长:");
    Scanner sc = new Scanner(System.in);
    double length = sc.nextDouble();
    System.out.println("请输入矩形的宽:");
    double width = sc.nextDouble();
    double getArea = length * width;
    return getArea;
    }

    public static void main(String[] args) {
    AreaDemo ad = new AreaDemo();
    System.out.println("此矩形的面积为:" +ad.area());

    }

    }


    2020-12-29 23:56:41
  • 提问者 刘徽 #2
    package com.imooc.method;

    import java.util.Scanner;

    public class AreaDemo {
    public void area() {
    System.out.println("请输入矩形的长:");
    Scanner sc = new Scanner(System.in);
    double length = sc.nextDouble();
    System.out.println("请输入矩形的宽:");
    double width = sc.nextDouble();
    double getArea = length * width;
    System.out.println("此矩形的面积为:" +getArea);
    }

    public static void main(String[] args) {
    AreaDemo ad = new AreaDemo();
    ad.area();
    System.out.println("此矩形的面积为" );

    }

    }

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

    代码截图:

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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