我是編程方面的新手,我現在正在我的高中開設一門入門課程。我們現在正在處理的其中一項任務是向用戶詢問他們想要計算的公式(各種面積/體積/等公式類型),向他們詢問計算所需的數據,然後給他們答案。我對編程非常感興趣,主要是因爲這個任務,因爲我已經意識到這項工作可以做多少大腦傳情。如何創建一個while循環,只要用戶在每個循環結束時輸入正確的標記/代碼,該while循環就會繼續運行?
因此,我決定走得更遠一點。我清理了我的雜亂代碼,現在我正在嘗試創建一個while循環,它允許用戶在不運行程序的情況下繼續計算公式,並在輸入不正確的數據時給出錯誤消息。我已經想出了後面的部分,但是我想在將第二個問題的解決方案放入代碼之前實現前者。
import java.util.Scanner;
public class FormulaRemake {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.printf("%s\n%s\n%s\n%s\n%s\n%s\n%s\n","What formula would you like to calculate?","Area of a Circle (AOC)","Circumference of a Circle (COC)","Area of a Trapezoid (AOT)","Volume of a Cylinder (VOC)","Volume of a Sphere (VOS)","Volume of a Cone (VON)");
String formula = input.nextLine();
while((formula.equalsIgnoreCase("AOC"))||(formula.equalsIgnoreCase("COC"))||(formula.equalsIgnoreCase("AOT"))||(formula.equalsIgnoreCase("VOC"))||(formula.equalsIgnoreCase("VOS"))||(formula.equalsIgnoreCase("VON")))
{
if(formula.equalsIgnoreCase("AOC"))
{
System.out.println("What is the circle's radius?");
double inputRadius = input.nextDouble();
System.out.printf("%.2f",Math.PI*(Math.pow(inputRadius,2)));
}
if(formula.equalsIgnoreCase("COC"))
{
System.out.print("What is the circle's radius?");
double inputRadius = input.nextDouble();
System.out.printf("%.2f",2*Math.PI*inputRadius);
}
if(formula.equalsIgnoreCase("AOT"))
{
System.out.println("What is the height of the trapezoid?");
double inputHeight = input.nextDouble();
System.out.println("What is the first length of the trapezoid?");
double inputLengthFirst = input.nextDouble();
System.out.println("What is the second length of the trapezoid?");
double inputLengthSecond = input.nextDouble();
System.out.printf("%.2f",(1/2)*inputHeight*(inputLengthFirst+inputLengthSecond));
}
if(formula.equalsIgnoreCase("VOC"))
{
System.out.println("What is the cylinder's radius?");
double inputRadius = input.nextDouble();
System.out.println("What is the cylinder's height?");
double inputHeight = input.nextDouble();
System.out.printf("%.2f",(Math.PI*(Math.pow(inputRadius,2)*inputHeight)));
}
if(formula.equalsIgnoreCase("VOS"))
{
System.out.println("What is the sphere's radius?");
double inputRadius = input.nextDouble();
System.out.println((4.0/3.0) * Math.PI * Math.pow(inputRadius, 3));
System.out.printf("%.2f",(4.0/3.0)*Math.PI*Math.pow(inputRadius, 3));
}
if(formula.equalsIgnoreCase("VON"))
{
System.out.println("What is the cone's radius?");
double inputRadius = input.nextDouble();
System.out.println("What is the cone's height?");
double inputHeight = input.nextDouble();
System.out.printf("%.2f",(1.0/3.0)*Math.PI*(Math.pow(inputRadius,2)*inputHeight));
}
}
}
}
我有一段時間的線,但我不確定如何處理它。我不知道如何讓我的代碼循環,while(hehe,while)活動行在while塊內。我應該保存這個類,創建一個新的類,然後在另一個類引用它,就像
串mathDone = TRUE(在每個式結束)
while(mathDone.equalsIgnoreCase(true))
{
String continueCalculation = input.nextLine;
System.out.println("Would you like to continue calculation?");
if(continueCalculation.equalsIgnoreCase("yes"))||(continueCalulation.equalsIgnoreCase("y"))
{ (無論運行命令是放在這裏)formulaRemake }} 從
旁白,我有點無知。我知道有關於類似主題的stackoverflow上的帖子,但我無法弄清楚如何將它們應用於我的情況。我太新了(顯然,太愚蠢)想弄清楚如何使用這些帖子來幫助我。
採摘一種語言並將其作爲標籤添加到您的問題將是一個好的開始。請花一些時間[閱讀如何提出好問題](http://stackoverflow.com/help/how-to-ask)。 –
你知道,我以爲我做到了。我打開了兩個單獨的選項卡,一個語法不好,另一個語法正確。 它似乎是我複製並將錯誤的主題粘貼到錯誤的標籤後編輯。主要歉意): –