[英]BMI Calculator with GUI boxes
因此,我需要完成一個作業,其中必須創建一個帶有輸入和輸出框的BMI計算器。 我的問題是它給了我NaN作為答案。 我搜索了這個站點和其他站點,發現問題出在以下地方:
private static double input() {
// TODO Auto-generated method stub
return 0;
}
如果更改值,它會給我一個數字,而不是我要查找的數字。 其他一切正常,只是輸出的問題困擾着我。
import static javax.swing.JOptionPane.*;
public class BMI_GUI {
private static String input;
public static void main(String[] args){
double vikt;
double langd;
double bmi;
setInput(showInputDialog("Din vikt i kg: "));
vikt = input();
setInput(showInputDialog("Din längd i m (med ett komma): "));
langd = input();
bmi = (vikt / (langd*langd));
JOptionPane.showMessageDialog(null, "Din BMI är " + bmi);
System.out.println("BMI Värden\n");
System.out.println("Undervikt: Under 18.5");
System.out.println("Normal: 18.5 - 24.9");
System.out.println("Övervikt: 25 - 29.9");
System.out.println("Fetma: 30 eller över");
}
private static double input() {
// TODO Auto-generated method stub
return 0;
}
public static String getInput() {
return input;
}
public static void setInput(String input) {
BMI_GUI.input = input;
}
}
這里有一些問題。 您沒有在計算中引用要引用的變量( length
和width
),而是在調用一個空的input()
方法,該方法對您沒有任何幫助,因此您可以完全擺脫它。 getInput()
方法也是如此。 由於您已經將輸入讀入BMI_GUI
的靜態input
字符串中, BMI_GUI
只需對其進行解析即可。 這可行,但是理想情況下,您還應該添加錯誤檢查-如果輸入String
而不是可以解析為double
的數字,該怎么辦? 您應該處理NumberFormatException
可能再次向用戶詢問剛剛要求的相同輸入。
public static void main(String[] args) {
double bmi = 0.0;
setInput(showInputDialog("Your weight in kg: "));
double weight = Double.parseDouble(input);
setInput(showInputDialog("Your length in m (with a comma): "));
double length = Double.parseDouble(input);
bmi = (weight / (length * length));
你可能想要
private static double input() {
// TODO Auto-generated method stub
return Double.parseDouble(getInput());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.