2016-08-20 11 views
0

オンラインでランダムな課題が見つかりました。コーダーとして試して改善する練習として使っていますが、課題のこの1つの領域では多くの困難を抱えています。 「別のメソッドの中で計算と変換を行い、メインメソッドのメソッドに必要な情報を渡し、計算が終わったらその結果をメインメソッドに戻して印刷します」私はこれを長い間ずっと続けてきましたが、これを完了しなければ本当にバグがするので、どんな助けでも大歓迎です。これが愚かな質問であれば、私は謝罪します。私はコーディングに非常に慣れています。ここでクラスメソッドに引数を渡し、mainメソッドに値を返す方法は?

が私のコードです:で

if (convert.equalsIgnoreCase("pounds to kilograms")) // This converts from pounds to kilograms 
    { 
     System.out.println("Ok, what is the amount of pounds you know?"); 
     poundAmount = readConsole.nextDouble(); 
     kilogAmount = poundAmount * .4536; 
     System.out.println("That is " + kilogAmount + " kilograms."); 
    } // End of if statement 

:例として

import java.util.Scanner; // Allows for use of scanner in class 

public class MeasurementConversion // Start of class 
{ 
    public static void main(String[]args) // Start of main 
    { 
     Scanner readConsole = new Scanner(System.in); // This is the scanner 
     String convert; 
     double poundAmount; // These are the doubles that store the measurements 
     double kilogAmount; 
     double ounceAmount; 
     double gramAmount; 
     double feetAmount; 
     double meterAmount; 
     double mileAmount; 
     double kilomAmount; 

     System.out.println("Hello, I am a conversion calculator. I can convert pounds to kilograms, ounces to grams,"); // This is where the scanner begins prompting the user for input 
     System.out.println("feet to meters, miles to kilometers, and vice versa."); 
     System.out.println("What would you like to convert?"); 
     convert = readConsole.nextLine(); 
     if (convert.equalsIgnoreCase("pounds to kilograms")) // This converts from pounds to kilograms 
     { 
      System.out.println("Ok, what is the amount of pounds you know?"); 
      poundAmount = readConsole.nextDouble(); 
      kilogAmount = poundAmount * .4536; 
      System.out.println("That is " + kilogAmount + " kilograms."); 
     } // End of if statement 
     if (convert.equalsIgnoreCase("kilograms to pounds")) // This converts from kilograms to pounds 
     { 
      System.out.println("Ok, what is the amount of kilograms you know?"); 
      kilogAmount = readConsole.nextDouble(); 
      poundAmount = kilogAmount * 2.20462; 
      System.out.println("That is " + poundAmount + " pounds."); 
     } // End of if statement 
     if (convert.equalsIgnoreCase("ounces to grams")) // This converts from ounces to grams 
     { 
      System.out.println("Ok, what is the amount of ounces you know?"); 
      ounceAmount = readConsole.nextDouble(); 
      gramAmount = ounceAmount * 28.5; 
      System.out.println("That is " + gramAmount + " grams.");  
     } // End of if statement 
     if (convert.equalsIgnoreCase("grams to ounces")) // This converts from grams to ounces 
     { 
      System.out.println("Ok, what is the amount of grams you know?"); 
      gramAmount = readConsole.nextDouble(); 
      ounceAmount = gramAmount * .035274; 
      System.out.println("That is " + ounceAmount + " ounces."); 
     } // End of if statement 
     if (convert.equalsIgnoreCase("feet to meters")) // This converts from feet to meters 
     { 
      System.out.println("Ok, what is the amount of feet you know?"); 
      feetAmount = readConsole.nextDouble(); 
      meterAmount = feetAmount * .3048; 
      System.out.println("That is " + meterAmount + " meters."); 
     } // End of if statement 
     if (convert.equalsIgnoreCase("meters to feet")) // This converts from meters to feet 
     { 
      System.out.println("Ok, what is the amount of meters you know?"); 
      meterAmount = readConsole.nextDouble(); 
      feetAmount = meterAmount * 3.28084; 
      System.out.println("That is " + feetAmount + " feet."); 
     } // End of if statement 
     if (convert.equalsIgnoreCase("miles to kilometers")) // This converts from miles to kilometers 
     { 
      System.out.println("Ok, what is the amount of miles you know?"); 
      mileAmount = readConsole.nextDouble(); 
      kilomAmount = mileAmount * 1.61; 
      System.out.println("That is " + kilomAmount + " kilometers."); 
     } // End of if statement 
     if (convert.equalsIgnoreCase("kilometers to miles")) // This converts from kilometers to miles 
     { 
      System.out.println("Ok, what is the amount of kilometers you know?"); 
      kilomAmount = readConsole.nextDouble(); 
      mileAmount = kilomAmount * .621371; 
      System.out.println("That is " + mileAmount + " miles."); 
     } // End of if statement 
    } // End of main 
} // End of class 
+2

割り当てが他の方法を作成する場合は、それを行う必要があります。あなたはただ一つの方法しか持っていません。 –

+1

https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html – OldProgrammer

+0

この記事では、そのコードのどれくらいが繰り返され、少しの違いがあり、どのようにできるかそれをリファクタリングする – ChiefTwoPencils

答えて

1

、あなたのmainメソッドに以下のコードを置き換え

if (convert.equalsIgnoreCase("pounds to kilograms")) // This converts from pounds to kilograms 
    { 
     System.out.println("Ok, what is the amount of pounds you know?"); 
     poundAmount = readConsole.nextDouble(); 
     kilogAmount = convertPoundToKilogram(poundAmount); // call method to do the calculation 
     System.out.println("That is " + kilogAmount + " kilograms."); 
    } // End of if statement 

と新しいメソッドを作成しますあなたのクラスでこのように:

private static double convertPoundToKilogram(double poundAmount) { 
    return poundAmount * .4536; 
} 

さらに、メソッドを追加したり、必要に応じてこれらのメソッドで多くの作業を行うこともできます(ユーザーなどから必要な情報を入力するなど)。

+0

プログラムは、すべてのメソッドを置き換えて新しいクラスを追加した後でも動作しますので、今のように動作するはずです。あなたの助けは非常に高く評価されています。お返事ありがとうございます – cpitt6477

+0

@ cpitt6477、NP、私に連絡します。 – rohitvats

関連する問題