[英]passing user input to methods java
大家好,我是Java的完全入門者,我正在嘗試編寫一個這樣的程序:油漆公司已確定,每115平方英尺的牆壁空間將需要一加侖的油漆和八小時的勞動。
該公司每小時收取$ 18.00的人工費。
編寫一個程序,允許用戶輸入要上漆的房間數量和每加侖的上漆價格。 它還應要求每個房間的牆面面積為平方英尺。 該程序應具有返回以下數據的方法:
然后它應該在屏幕上顯示數據,這是我到目前為止所擁有的。 我可以得到用戶輸入和加侖數,但是當我嘗試計算工時數時,它是根據以前的計算結果來計算工時的,這不是我想要的。到目前為止
int resultnumberofhours = hoursoflabor(numberofsquarefeet,115,8);
System.out.println("the number of hours needed are " + resultnumberofhours);
}
public static int hoursoflabor(int numberofsquarefeet, int squarefeet,int labor){
int resultnumberofhours = numberofsquarefeet/115*8;
return resultnumberofhours;
}
而是一步一步地嘗試這樣的代碼
Scanner dd = new Scanner(System.in);
int[] vars = new int[5];
for(int i = 0; i < vars.length; i++) {
System.out.println("Enter next var: ");
vars[i] = dd.nextInt();
}
我可以在代碼中看到的唯一問題是您對結果不做任何事情。 請嘗試以下操作:
int result = numberofsquarefeet(numberofsquarefeet, 115, 1);
System.out.println("Number of square feet: " + result);
從Java函數返回某些內容時,您可以將該值分配給指定為該函數的返回類型的相同類型的變量,也可以在print語句中使用輸出。 如果您對輸出不執行任何操作,則結果將丟失。
希望這可以幫助。
您必須在最后打印結果:
System.out.println("enter number of square feet");
numberofsquarefeet = Keyboard.nextInt();
int resultSqFeet = numberofsquarefeet(numberofsquarefeet, 115, 1);
System.out.println("number of square feet is" + resultSqFeet);
}
或在方法內部:
public static int numberofsquarefeet(int numberofsquarefeet, int squarefeet, int paint) {
int result = numberofsquarefeet / 115 * 1;
System.out.println("number of square feet is " + result);
return result;
}
hoursoflabor
我建議您從編寫代碼后退一步,並先分析一下問題。
您有一個數據模型和一個過程,可以對其進行詳細描述。 這將幫助您為您的類和方法提出一個好的設計。 如果您立即開始編寫代碼,尤其是對於初學者,則通常最終會像一堆意大利面條。
這是我對數據模型的建議:
請注意,PaintingCompany類僅包含常量。 如果願意,可以將main()方法放在此類中。
油漆的類型和數量被建模為單一的“油漆”類。 您可能會說這是不准確的,並有一個單獨的PaintType(枚舉)來表示已知類型的油漆及其價格,但我認為這是目前的特征。 因此,使用上述模型,您需要以正確的價格實例化一個Paint實例,然后在其上設置油漆量。 然后,Paint類將具有計算總油漆價格的功能。
明確地對單元建模是一個想法。 該模型現在固定在美元和加侖上,但是將來您可能希望切換到歐元和升以便在歐洲銷售該應用程序。 目前,我沒有為單位建模,因為它可能會使練習復雜化。 為避免混淆,重要的是要清楚地指定單位,作為變量或方法名稱的一部分。眾所周知,由於這種類型的錯誤,太空火箭會墜毀。
該過程可能如下所示:
請注意,其中一些處理步驟是單獨類的理想選擇:
如果您基於此(或您自己的)設計發布新代碼,我很樂意對此發表評論或為您提供任何幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.