2016-08-20 297 views
0

我在網上發現了一個隨機任務,並將其作爲實踐來嘗試和改進,作爲一名編碼員,但是我在這個任務的一個領域遇到了很多困難。它希望我「在單獨的方法中進行計算和轉換,將所需的信息從主方法傳遞到方法中,計算完成後,將結果返回到主要的打印方法中。」我一直在研究這個問題很長一段時間,如果我沒有完成這個,那真的會讓我煩惱,所以任何幫助都將不勝感激。如果這是一個愚蠢的問題,我很抱歉,我對編碼很陌生。如何將參數傳遞給類方法並將值返回給主方法?

這裏是我的代碼:

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

如果你的任務是創建其他方法,那麼你應該這樣做。你只有一個方法,main。 –

+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 = poundAmount * .4536; 
     System.out.println("That is " + kilogAmount + " kilograms."); 
    } // End of if statement 

有:

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