0

私が尋ねている問題は、皆さんにとっておそらく非常に単純ですが、私は Java プログラミングの完全な初心者であり、この質問に行き詰まっています。問題は、変数を追加するだけでなく、複数のメソッドと引数を使用する必要があることです。

たとえば、ユーザー入力を入力して、さまざまな整数変数を合計する必要があります。プログラムをコンパイルできますが、どういうわけか変数の追加が間違っています。

この例では、スポーツモデルで car2 と入力すると、変数の足し算と引き算が間違っています。どうもありがとうございました。どんな助けでも大歓迎です。

// Methods.java
import javax.swing.*; // import swing lib
public class MethodsTest
{
// global int access for all methods
static int basicPrice = 0;
static int carPaints = 0;
static int sportsModel = 0;
static int discount = 0;
static int priceTotal = 0;

public static void main(String[] args)
{
    carModel();
    System.exit(0);
}

public static void carModel()
{
    String askCarTypes = "";
    String carTypes = "";

    askCarTypes = JOptionPane.showInputDialog
    ("Car1 or Car2?");

    carTypes = typesOfCar(askCarTypes);

    String askSportsModel = "";
    String carSportsModel = "";

    askSportsModel = JOptionPane.showInputDialog
    ("Sports Model? (y/n)");

    carSportsModel = sportsModelCar(askSportsModel);

    JOptionPane.showMessageDialog
    (null, "Basic Price: " + basicPrice + "\n" +
        "Car Paints: " + carPaints + "\n" +
        "Car Model: " + sportsModel + "\n" + 
        "Discount: " + discount + "\n" +
        "Total: " + priceTotal);

    return;

}

/* Calculating basic price w/o solar panel
String args = types */
public static String typesOfCar(String types)
{
    String a = "";

    if (firstCar(types))
    {
        basicPrice = basicPrice + 20000;
        priceTotal = basicPrice;
    }
    else if (secondCar(types))
    {
        basicPrice = basicPrice + 20000;
        carPaints = carPaints + 2000;
        priceTotal = basicPrice + carPaints;
    }
    else 
    {
        JOptionPane.showMessageDialog
        (null, "Sorry we have no price available for that model.");
        return a;
    }

    return a;
}

/* Calculating price w/ sports
String args = acc */
public static String sportsModelCar(String acc)
{
    String b = "";

    if (car1SportsModel(acc))
    {
        sportsModel = sportsModel + 5000;
        priceTotal = basicPrice + sportsModel;
    }
    else if (car2SportsModel(acc))
    {
        sportsModel = sportsModel + 5000;
        discount = discount - 500;
        priceTotal = basicPrice + carPaints + sportsModel + discount;
    }

    return b;
}

public static boolean firstCar (String types)
{
    if (types.equals("car1"))
    {
        return true;
    }
    else
    {
        return false;
    }
}

public static boolean secondCar (String types)
{
    if (types.equals("car2"))
    {
        return true;
    }
    else
    {
        return false;
    }
}

public static boolean car1SportsModel (String acc)
{
    if (acc.equals("y"))
    {
        return true;
    }
    else
    {
        return false;
    }
}

public static boolean car2SportsModel (String acc)
{
    if (acc.equals("y"))
    {
        return true;
    }
    else
    {
        return false;
    }
}
}
/* Output with car2 and sportsModel
Basic Price: 20000
Car Paints: 2000
Car Model: 5000
Discount: 0
Total: 25000 */

割引は -500 と表示され、合計は 26500 になります。

4

1 に答える 1

1

値「割引」を設定していません。

if (car1SportsModel(acc))
{
    sportsModel = sportsModel + 5000;
    priceTotal = basicPrice + sportsModel;
}
else if (car2SportsModel(acc))
{
    sportsModel = sportsModel + 5000;
    discount = discount - 500;
    priceTotal = basicPrice + carPaints + sportsModel + discount;
}

car1SportsModelメソッドとメソッドは機能的に同等であるため、上記car2SportsModelのコード スニペットの else ステートメントをヒットすることはできません。discount設定されることはないため、元の 0 値のままです。

実際、これらの機能さえ持つべきではありません。代わりに、このようなことをしてみませんか?

if (acc.equals("y"))

Car実際、何らかのクラスを作成し、それを使用して物事を比較する必要があります。

于 2013-10-15T04:06:57.320 に答える