3

私はJavaを学んでいる初心者のプログラマーで、宿題は完了していますが、もっときちんとしたいと思っています。次の印刷方法を 1 つに結合できるかどうか、少なくともキログラムからポンドへの方法とポンドからキログラムへの方法を 1 つに結合できるかどうかを知りたいと思いました。

if ステートメントやループよりも高度なものは使用できないことに注意してください。

これは私の初めての投稿であり、すべての回答者に適切な情報を提供することを確認したいので、Weight Conversion Java ファイルをここにアップロードしました: Weight Conversion Java file

コードを単純化する方法や、より良いコード エチケットに従う方法に関するその他のアドバイスも歓迎します。

印刷ステートメントは次のとおりです。

/**
* This method below prints the calculations calculateKG and calculateLBS
*/
public static void printRESULTS1( double dResult1, double dResult2){
// Prints the result of Pounds to Kilograms 
System.out.print(dResult1 + " pounds is " + dResult2 + " kilograms.");
}// end method printRESULTS1

/**
* This method below prints the calculations calculateKG and calculateLBS
*/
public static void printRESULTS2( double dResult1, double dResult2){
// Prints the result of Pounds to Kilograms 
System.out.print( dResult1 + " kilograms is " + dResult2 + " pounds");
}// end method printRESULTS2

/**
* This method below prints the calculations calculateOZ and calculateLBS
*/ 
public static void printRESULTS3( double dResultOZ, double dResultLBS){
// Prints the result of Pounds to Kilograms 
System.out.print( dResultOZ + " ounces is " + dResultLBS + " pounds");
}// end method printRESULTS3 

/**
* This method below prints the calculations calculateOZ and calculateLBS
*/ 
public static void printRESULTS4( double dResultLBS, double dResultOZ){
// Prints the result of Pounds to Kilograms 
System.out.print( dResultLBS + " pounds is " + dResultOZ + " ounces ");
}// end method printRESULTS4 
4

2 に答える 2

1

まず、次のことを考慮してください。

public static void printResults(
    double dResultFrom,
    String from,
    double dResultTo,
    String to)
{
    System.out.print(dResultFrom + " " + from + " is " + dResultTo + " " + to);
}

使用しているコンテキスト全体と制限についてはわかりません。もちろん、さらにリファクタリングすることも可能です。例えば:

public static void printResults(
    double resultFrom,
    String fromDescription,
    double resultTo,
    String toDescription)
{
    String formattedResult = formatResult(
        resultFrom,
        fromDescription,
        resultTo,
        toDescription);

    System.out.print(formattedResult);
}

public static String formatResult(
    double resultFrom,
    String fromDescription,
    double resultTo,
    String toDescription)
{
    return formatQuantity(resultFrom, fromDescription)
        + " is "
        + formatQuantity(resultTo, toDescription);
}

public static String formatQuantity(double value, String description)
{
    return value + " " + description;
}

あなたの例よりもコードの重複がはるかに少なく、責任が明確に分離されていることに注意してください(フォーマット機能と印刷機能)。たとえば、結果をコンソールではなくファイルに出力する必要がある場合、この設計はより柔軟であることがわかります。

于 2013-10-06T22:11:14.157 に答える
0

助けてくれてありがとう、コードを単純化し、よりよく整理する方法について考えるのが難しくなりました. また、print メソッドのように、英語以外の別の言語で使用できるように、コードが普遍的であることを確認するための優れたアドバイスです。本当に役に立ったのは、メソッドで 2 つ以上のパラメーターを使用できることを理解することでした。

    public static void printRESULTS(int nConversion, double dResult1, double dResult2){
    //Declare variable
    String output = "";

    //Pounds to Kilogram output
    if (nConversion == 1){
       output = dResult1 + " pounds is " + dResult2 + " kilograms.";
       System.out.println(output);
    }
    //Kilograms to Pounds output
    else if (nConversion == 2){
       output = dResult1 + " kilograms is " + dResult2 + " pounds. ";
       System.out.println(output);
    }
    //Ounces to Pounds output
    else if (nConversion == 3){
       output = dResult1 + " ounces is " + dResult2 + " pounds. ";
       System.out.println(output);
    }
    //Pounds to Ounces output
    else if (nConversion == 4){
       output = dResult1 + " pounds is " + dResult2 + " ounces. ";
       System.out.println(output);
    }
于 2013-10-07T00:18:17.400 に答える