-4

ブロックの外部で既に確立され、内部で呼び出されている double 変数を取得しようとすると問題が発生しますが、同じ変数の値を返して計算に適用できるようにしたいと考えています。

返される変数は次のとおりです。

double quarter = 0;

しかし、最初のelse/ifステートメントでクォーターにプラグインする0と、switchブロックの値ではなくプラグインされます。値を取得するにはどうすればよいですか?

        double quarter = 0;

        //Date entry will be calculated by how much KW user enters
        switch (input)
        {
            case "2/15/13":
                quarter = kwUsed * 0.10;
                break;
            case "4/15/13":
                quarter = kwUsed * 0.12;
                break;
            case "8/15/13":
                quarter = kwUsed * 0.15;
                break;
            case "11/15/13":
                quarter = kwUsed * 0.15;
                break;
            default:
                System.out.println("Invalid date");
        }


        //Declaring variables for calculations
        double base = 0;
        double over = 0;
        double excess = 0;

        double math1 = 0;
        double math2 = 0;


        //KW Calculations
        if (kwUsed <= 350)
        {
            base = quarter;

        }else if (kwUsed <= 500)
        {
            math1 = ((kwUsed - 350) * quarter);
            base = ((kwUsed * quarter) - math1);
            over = ((math1 * 0.1) + math1);

        }else if (kwUsed > 500)
        {
            math2 = ((kwUsed - 350) * 0.1);
            base = ((kwUsed * 0.1) - math2);
            math2 = ((kwUsed -350) - 50); 
            over = ((math2 * 0.1) + (15 * 0.1));
            double math3 =((kwUsed - 500) * 0.1);
            excess = ((math3 * 0.25) + math3);

        }

質問を明確にするために編集されました。

4

1 に答える 1

0

kwUsed = 0入力したswitch日付または日付が間違っている可能性があります。quarterこれらの値が正しい場合、ゼロにすることはできません。

double price = 0;
switch (input)
    {
        case "2/15/13":
            price = 0.10;
            break;
        case "4/15/13":
            price = 0.12;
            break;
        case "8/15/13":
            price = 0.15;
            break;
        case "11/15/13":
            price = 0.15;
            break;
        default:
            System.out.println("Invalid date");
    }


    //Declaring variables for calculations
    double base = 0;
    double over = 0;
    double excess = 0;

    double math1 = 0;
    double math2 = 0;


    //KW Calculations
    if (kwUsed <= 350)
    {
        base = kwUsed * price;

    }else if (kwUsed <= 500)
    {
        math1 = ((kwUsed - 350) * price);
        base = ((kwUsed * price) - math1);
        over = ((math1 * 0.1) + math1);

    }...
于 2013-10-28T09:10:24.050 に答える