Datentyp für Zahlenbereiche

Kanaska

Kanaska

Mitglied
Guten Tag,

ich bin aktuell mit einem kleinen BMI Rechner beschäftigt um JAVA kennenzulernen. Ich bin ganz zufrieden mit meinem erreichten, will aber noch für meine Ausgabe den Namen des Gewichtsbereiches mit ausgeben (z.B. Normalgewicht oder Magersucht etc.)

Diese Gewichtskategorien liegen in Dezimalzahlbereichen.

Welchen Datentyp nehme ich um diese Bereiche am besten festzulegen, nutze ich double/float und definiere dann z.B. double Magersucht = <15

Eine weiter Frage im Anschluss ist wie kann ich Zahlenbereiche in einen Datentyp bringen? ich kann doch sicherlich nicht einfach ( n < 0 || n >= 10) einfügen.

MfG
 
kneitzel

kneitzel

Top Contributor
Also Du kannst in den Variablen natürlich nur Werte zuweisen. Also ein
double magersucht = 15

Ein Vergleich geht so nicht. Das < braucht ja auch ein Vergleich zwischen zwei Werten.

So ein Vergleich ist auch ein aktiver Vorgang, also ein Stück code, der ausgeführt werden kann/muss.

Somit wäre ein Vergleich eher eine Methode:
Java:
public static boolean istMagersuechtig(double bmi) {
    return bmi < 15.0;
}

Und da kann man dann natürlich auch mehrere Bedingungen prüfen.

Wenn du nur bestimmte Zahlenbereiche zulassen möchtest, dann kannst Du das im Rahmen von Settern prüfen und dann ggf. eine Exception werfen oder so. Aber du bist natürlich was die Speicherung der Daten angeht immer auf die vorhandenen Datentypen angewiesen.
 
Kanaska

Kanaska

Mitglied
Also Du kannst in den Variablen natürlich nur Werte zuweisen. Also ein
double magersucht = 15

Ein Vergleich geht so nicht. Das < braucht ja auch ein Vergleich zwischen zwei Werten.

So ein Vergleich ist auch ein aktiver Vorgang, also ein Stück code, der ausgeführt werden kann/muss.

Somit wäre ein Vergleich eher eine Methode:
Java:
public static boolean istMagersuechtig(double bmi) {
    return bmi < 15.0;
}

Und da kann man dann natürlich auch mehrere Bedingungen prüfen.

Wenn du nur bestimmte Zahlenbereiche zulassen möchtest, dann kannst Du das im Rahmen von Settern prüfen und dann ggf. eine Exception werfen oder so. Aber du bist natürlich was die Speicherung der Daten angeht immer auf die vorhandenen Datentypen angewiesen.
Test im Extraprogramm:
import Algotools.IO;
public class Einordnung{
  public static void main (String[] args){
    double BMI, Magersucht, Untergweicht;
    BMI = IO.readDouble ("BMI");
    Magersucht = 15 ;
    Untergewicht = 17.5 ;
    Normalgewicht = 25 ;
    public static istMagersüchtig (double BMI) {
      return BMI <15;
}
    public static istUntergweicht (double BMI) {
      return BMI <17.5;
  }
  public static istNormalgewicht (double BMI) {
      return BMI <25;
  }
  }
Also ich habe mir das so wie ich es verstanden habe gebaut.

Jetzt habe ich 2 weitere Fragen, aufgrund das ich mit dem Java-Editor arbeite aus meiner Schule nutze ich die AlgoTools Bibliothek.

Auf jeden Fall danke ür deine Antwort jedoch habe ich das mit der Return Methode nicht ganz begriffen, die gekennzeichneten Zeilen werden mir als Fehler ausgegeben, da ich das erste mal mit public static und return arbeite wollte ich fragen wie genau ich damit umgehe.

Ebenfalls wie schreibe ich den Bereich hinter return aus, denn jetzt bei z.B. der Zahl 12 würden ja alle richtig sein.
 
I

infos9

Mitglied
Nimm dafür eine TreeMap (Integer, String), die sind dafür gedacht:
Java:
import java.util.Scanner;
import java.util.TreeMap;

public class BMI {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Bitte dein Gewicht:");
        double g = scanner.nextDouble();
        System.out.println("Bitte deine Größe in cm:");
        double m = scanner.nextDouble() / 100.0;
        double bmi = g / (m * m);
        System.out.println("Dein BMI ist: " + bmi);

        TreeMap<Integer, String> tmap = new TreeMap<>();
        tmap.put(0, "Starkes Untergewicht");
        tmap.put(16, "Mäßiges Untergewicht");
        tmap.put(17, "Leichtes Untergewicht");
        tmap.put(18, "Normalgewicht");
        tmap.put(25, "Übergewicht");
        tmap.put(30, "Adipositas Grad 1 (mäßig)");
        tmap.put(35, "Adipositas Grad 2 (deutlich)");
        tmap.put(40, "Adipositas Grad 3 (extrem)");

        String t = tmap.floorEntry((int) bmi + 0).getValue();
        System.out.println("Dein Typ ist: " + t);

        System.out.println("Vielen Dank für die Benutzung dieser Anwendung!");
    }
}
 
Kanaska

Kanaska

Mitglied
Nimm dafür eine TreeMap (Integer, String), die sind dafür gedacht:
Java:
import java.util.Scanner;
import java.util.TreeMap;

public class BMI {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Bitte dein Gewicht:");
        double g = scanner.nextDouble();
        System.out.println("Bitte deine Größe in cm:");
        double m = scanner.nextDouble() / 100.0;
        double bmi = g / (m * m);
        System.out.println("Dein BMI ist: " + bmi);

        TreeMap<Integer, String> tmap = new TreeMap<>();
        tmap.put(0, "Starkes Untergewicht");
        tmap.put(16, "Mäßiges Untergewicht");
        tmap.put(17, "Leichtes Untergewicht");
        tmap.put(18, "Normalgewicht");
        tmap.put(25, "Übergewicht");
        tmap.put(30, "Adipositas Grad 1 (mäßig)");
        tmap.put(35, "Adipositas Grad 2 (deutlich)");
        tmap.put(40, "Adipositas Grad 3 (extrem)");

        String t = tmap.floorEntry((int) bmi + 0).getValue();
        System.out.println("Dein Typ ist: " + t);

        System.out.println("Vielen Dank für die Benutzung dieser Anwendung!");
    }
}
Vielen Dank funktioniert super werde mir nebenbei nochmal das andere bauen aber super Hilfe um es zu nutzen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Klassen Gesucht: Einfache Beispiel-Klasse für einen Datentyp Java Basics - Anfänger-Themen 7
1 Neuen Datentyp für rationale Zahlen als Klasse entwickeln Java Basics - Anfänger-Themen 20
Binary.Coder Welcher Datentyp für den Simplex Algorithmus Java Basics - Anfänger-Themen 3
B Datentyp für +,-,*,/ Java Basics - Anfänger-Themen 5
W Datentypen Operatoren für eigenen Datentyp nutzen Java Basics - Anfänger-Themen 2
J Datentypen Datentyp für Datum Java Basics - Anfänger-Themen 23
A Datentyp char Java Basics - Anfänger-Themen 27
I Klassen als Datentyp nutzen? Java Basics - Anfänger-Themen 11
C unverständlicher Code Attribute ohne Datentyp, wie geht das? Java Basics - Anfänger-Themen 8
T Datentyp mit Anführungszeichen drinnen Java Basics - Anfänger-Themen 3
R Datentypen Datentyp String lenght & charAT Java Basics - Anfänger-Themen 4
M Array mit eigenem Datentyp probleme beim übergeben Java Basics - Anfänger-Themen 6
C Interface als Datentyp eines Attributes? Java Basics - Anfänger-Themen 6
B Datentypen Datentyp welcher den gleichen Namen wie die Klasse trägt? Java Basics - Anfänger-Themen 1
D Datentypen Welcher ist der beste Datentyp? Java Basics - Anfänger-Themen 28
F Datentypen Missverständnis Datentyp Java Basics - Anfänger-Themen 2
D Rechnen mit numerischen Datentyp Frage Java Basics - Anfänger-Themen 16
E Klassename als Datentyp??? Java Basics - Anfänger-Themen 4
F Wertebereich/Datentyp Java Basics - Anfänger-Themen 26
M Datentypen Java Datentyp Definition Java Basics - Anfänger-Themen 6
M Datentyp Short Wert zuweisen über Methode Java Basics - Anfänger-Themen 2
Z Was habe ich davon mit einem Datentyp verschiedene Instanzen zu haben? Java Basics - Anfänger-Themen 6
E Datentypen Benutzerdefinierten Datentyp verwenden Java Basics - Anfänger-Themen 1
ms_cikar Java Datentyp unwandlung Java Basics - Anfänger-Themen 7
G Datentypen Tipps, Ratschläge erwünscht bzgl. Datentyp bestimmen über Wertebereich Java Basics - Anfänger-Themen 5
Y Warum void statt Datentyp + return Java Basics - Anfänger-Themen 4
M Interface als Datentyp Java Basics - Anfänger-Themen 12
R Variablen Datentyp erst während Laufzeit festlegen Java Basics - Anfänger-Themen 6
R Datentypen Datentyp eines Werts in einer Textdateizeile abfragen und ändern Java Basics - Anfänger-Themen 4
R Interface Datentyp bei Erzeugung eines Objekts, dessen Klasse eine Schnittstelle implementiert Java Basics - Anfänger-Themen 18
B Collections Collection soll nur einen bestimmten Datentyp aufnehmen Java Basics - Anfänger-Themen 12
V Datentypen Frage zum Datentyp Byte Java Basics - Anfänger-Themen 11
B datentyp in binär umwandeln Java Basics - Anfänger-Themen 5
S Primitiver Datentyp Short , Vorteil/Nachteil Betrachtung Java Basics - Anfänger-Themen 6
J Field auf Datentyp prüfen Java Basics - Anfänger-Themen 8
D Datentyp Object Java Basics - Anfänger-Themen 2
A Datentypen Mehrdimensionaler Datentyp gesucht Java Basics - Anfänger-Themen 4
D Datentypen Abstrakter Datentyp lässt sich nicht casten Java Basics - Anfänger-Themen 7
F Klassenorganisation: Datentyp in Datentyp anlegen Java Basics - Anfänger-Themen 3
N Unerklärlich: Rekursiver Algorithmus gibt falschen Datentyp zurück... Java Basics - Anfänger-Themen 4
J Datentypen Was ist der Sinn vom Datentyp "char" ? Java Basics - Anfänger-Themen 11
G Eigener Autoboxing Datentyp Java Basics - Anfänger-Themen 3
Guybrush Threepwood Effizientester Datentyp zur Speicherung einer ungeordneten Menge von ints Java Basics - Anfänger-Themen 8
D Datentypen Rekursiver Datentyp Java Basics - Anfänger-Themen 8
GianaSisters Auf Datentyp überprüfen Java Basics - Anfänger-Themen 13
M Array mit komplexem Datentyp Java Basics - Anfänger-Themen 9
M 2 Arrays mit komplexen Datentyp vergleichen Java Basics - Anfänger-Themen 8
G Datentypen Welcher Datentyp Java Basics - Anfänger-Themen 2
F Datentypen Welchen Wert hat ein einfacher Datentyp nach der Deklaration? Java Basics - Anfänger-Themen 6
B Java Bean, JSP, Komplexer Datentyp Java Basics - Anfänger-Themen 3
I Datentypen Eigener DatenTyp Java Basics - Anfänger-Themen 2
E Datentyp Array Java Basics - Anfänger-Themen 10
M Datentypen Eigenen Datentyp toArray() Java Basics - Anfänger-Themen 4
A Datentyp Char wird in BlueJ nur als leerer weißer Kasten dargestellt Java Basics - Anfänger-Themen 1
N Frage zu Datentyp byte Java Basics - Anfänger-Themen 14
F Datentyp Number???? Java Basics - Anfänger-Themen 2
A einlesen, schreiben, umwandlung datentyp Java Basics - Anfänger-Themen 10
A Datentyp mit String festlegen? Java Basics - Anfänger-Themen 13
D Generischer Datentyp Java Basics - Anfänger-Themen 2
D Datentyp: Liste von String->Double dingern Java Basics - Anfänger-Themen 4
K Datentyp vs. Datenstruktur - Unterschiede Java Basics - Anfänger-Themen 13
C Datentyp von einer Variablen ermitteln. Java Basics - Anfänger-Themen 12
M Datentyp Parameter Java Basics - Anfänger-Themen 18
R Welchen Datentyp verwenden? Java Basics - Anfänger-Themen 12
B Datentyp anlegen Java Basics - Anfänger-Themen 6
M Eigene Klasse mit "Enumeration"-Datentyp verknüpfe Java Basics - Anfänger-Themen 16
K Datentyp Problem Java Basics - Anfänger-Themen 2
X Rekursion & Generischer Datentyp Java Basics - Anfänger-Themen 11
A neuen Datentyp (Digit) definieren Java Basics - Anfänger-Themen 12
A Datentyp String in char umwandeln Java Basics - Anfänger-Themen 3
J datentyp -objectTyp Rückgabe Java Basics - Anfänger-Themen 2
D Superinterface als Datentyp Java Basics - Anfänger-Themen 5
E Generischer Datentyp und Arrays Java Basics - Anfänger-Themen 3
Z ArrayList<Entry<Datentyp, Integer>> ? Java Basics - Anfänger-Themen 12
L Datentyp Problem Java Basics - Anfänger-Themen 7
F Datentyp eines Inputs überprüfen Java Basics - Anfänger-Themen 2
NightmareVirus Datentyp des Arrayinhalt abfragen Java Basics - Anfänger-Themen 4
S Probleme mit Datentyp beim Einlesen Java Basics - Anfänger-Themen 4
C Datentyp byte Java Basics - Anfänger-Themen 22
G Java Problem [Datentyp] Java Basics - Anfänger-Themen 10
B Datentyp char -> Zeichen um einen Wert erhöhen Java Basics - Anfänger-Themen 12
M long Datentyp effizient mit Daten füllen Java Basics - Anfänger-Themen 2
S Datentyp aus 3 longs Java Basics - Anfänger-Themen 3
M datentyp ausfindig machen Java Basics - Anfänger-Themen 2
C Eigenen Datentyp schreiben Java Basics - Anfänger-Themen 13
T Probleme mit Datentyp Double Java Basics - Anfänger-Themen 4
W Datentyp Zahlen sortieren Java Basics - Anfänger-Themen 12
B Datentyp gesucht Java Basics - Anfänger-Themen 5
J Datentyp einer Klasse bei Anwendung von implements Java Basics - Anfänger-Themen 4
R Datentyp Ring - zyklisch doppelt verkettete Liste - HILFE! Java Basics - Anfänger-Themen 12
M Linkedlist, wert auf datentyp prüfen Java Basics - Anfänger-Themen 3
P Methoden der Unterklasse in Oberklassen-Datentyp anwenden Java Basics - Anfänger-Themen 24
N Problem mit Datentyp short, byte Java Basics - Anfänger-Themen 2
G Datentyp = Objekt ? Java Basics - Anfänger-Themen 4
G selbstdefinierten Datentyp sortieren Java Basics - Anfänger-Themen 4
G Datentyp: was ist eleganter? Java Basics - Anfänger-Themen 4
G Datentyp-Vorzeichenlos? Java Basics - Anfänger-Themen 2
A Eigener Datentyp? Java Basics - Anfänger-Themen 39
T Datentyp zu Date ändern Java Basics - Anfänger-Themen 7
P Datentyp Object Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Anzeige

Neue Themen


Oben