占地面积计划

时间:2012-12-07 12:47:20

标签: java do-while

我应该编写一个计算房屋总楼面面积的程序。该程序提示用户输入长度&至少一个房间的宽度,并且需要与用户确认他是否想要输入更多房间尺寸。

它不起作用。有人请帮帮我吗?

import java.util.*;

public class FloorSpace
{

    public static void main (String[] args)
    {

        Scanner input = new Scanner(System.in); 

        double length = 0.0, width = 0.0, floorSpace = 0.0;
        char ans;


        do
        {
            System.out.print("Enter length: ");
            length = input.nextDouble();

            System.out.print("Enter width: ");
            width = input.nextDouble();

            floorSpace = length * width;

            floorSpace += floorSpace;

            System.out.print("Do you want to enter more room dimensions? (y/n): ");
            ans = input.nextLine().charAt(0);
        }
        while (ans == 'y');


        System.out.println("\nTotal floor space is " + floorSpace);

    }

}

哦,我刚刚发现我的计算公式出了问题。有人可以帮助我。

3 个答案:

答案 0 :(得分:1)

您每次都将floorSpace设置为length * width,然后自行递增该值(实际上只是将其乘以2)。

替换

floorSpace = length * width;

floorSpace += floorSpace;

只是

floorSpace += length * width

答案 1 :(得分:0)

而不是:

ans= input.nextLine().charAt(0);

使用:

ans = input.next().charAt(0);

要修复您的公式,请使用:

    floorSpace += length * width;

并删除:

floorSpace = length * width;

所以最终解决方案如下:

import java.util.*;

public class FloorSpace
{

    public static void main (String[] args)
    {

        Scanner input = new Scanner(System.in); 

        double length = 0.0, width = 0.0, floorSpace = 0.0;
        char ans;


        do
        {
            System.out.print("Enter length: ");
            length = input.nextDouble();

            System.out.print("Enter width: ");
            width = input.nextDouble();

            floorSpace += length * width;

            System.out.print("Do you want to enter more room dimensions? (y/n): ");
            ans = input.next().charAt(0);
        }
        while (ans == 'y');

        System.out.println("\nTotal floor space is " + floorSpace);
    }
}

答案 2 :(得分:0)

试试这个:

import java.util.*;

public class FloorSpace
{

    public static void main (String[] args)
    {

        Scanner input = new Scanner(System.in); 

        double length = 0.0, width = 0.0, floorSpace = 0.0;
        char ans='n'; //not for default


        do
        {
            System.out.print("Enter length: ");
            length = input.nextDouble();

            System.out.print("Enter width: ");
            width = input.nextDouble();



            floorSpace +=  length * width;

            System.out.print("Do you want to enter more room dimensions? (y/n): ");
            if (input.hasNext()){
                ans = input.next().charAt(0);
            }
        }
        while (ans == 'y');


        System.out.println("\nTotal floor space is " + floorSpace);

    }
}

此致