簡體   English   中英

帶GUI框的BMI計算器

[英]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;
    }

}

這里有一些問題。 您沒有在計算中引用要引用的變量( lengthwidth ),而是在調用一個空的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM