1

家の総床面積を計算するプログラムを書くことになっています。プログラムは、少なくとも 1 つの部屋の長さと幅を入力するようにユーザーに促し、さらに部屋の寸法を入力する場合はユーザーに確認する必要があります。

機能していません。誰か助けてください。

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);

    }

}

ああ、私の計算式に何か問題があることがわかりました。誰か助けてください。

4

3 に答える 3

1

毎回に設定floorSpaceし、その値をそれ自体でインクリメントします(実際には2倍するだけです)。length * width

交換

floorSpace = length * width;

floorSpace += floorSpace;

だけで

floorSpace += length * width
于 2012-12-07T12:54:50.780 に答える
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);

    }
}

よろしく

于 2012-12-07T12:59:41.527 に答える
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);
    }
}
于 2012-12-07T12:52:07.193 に答える