IO-BMIRechner

lassard

Mitglied
hi, hab gestern angefangen java zu lernen und wollte nen BMI Rechner progammieren, der will aber nicht compilen - was mach ich falsch?
Das ist er:

Java:
import java.io.*;

class BMI
{
  public static void main (String[] args) throwsIOException
  {
  InputStreamReader inStream = new InputStreamReader( System.in );

  BufferedReader stdin = new BufferedReader (new InputStreamReader( System.in));

  String txtin;
  int gewicht, groeße, groeßeq, alter, BMI;

  System.out.println("Geben Sie Ihr Gewicht in Kg an.");
  txtin = stdin.readLine();
  gewicht = Ineger.parse.Int( txtin );

  System.out.println("Geben Sie Ihre Koerpergroesse in cm an.");
  txtin = stdin.readLine();
  groesse = Integer.parse.Int( txtin ); 

  groesseq = groesse * groesse;
  BMI = gewicht / groesseq;
  

  System.out.println("Ihr aktueller BMI betraegt:" + BMI );
  }
}

P.S. das alter mach ich später erst wenn ich ne Tabelle gefunden habe...
 
Zuletzt bearbeitet von einem Moderator:

eRaaaa

Top Contributor
Ohje, also da gibts einiges :

1.) throwsIOException :arrow: throws IOException
2.) gewicht = Ineger.parse.Int(txtin); :arrow: da fehlt ein t bei Integer !
2.1) es muss parseInt heißen, also ohne den Punkt !
3.) einmal heißt es bei dir groeße (bei der Deklaration) aber unten willst du einen Wert groesse zuordnen
4.) das Gleiche wie bei 3) gilt natürlich auch bei groeßeq und groesseq
5.) int/int = int (solltest du beachten!)

/edit: p.s: es gibt hier schöne JAVA-Tags ^^
Java:
class BMI
{
public static void main (String[] args) throwsIOException
{
InputStreamReader inStream = new InputStreamReader( System.in );

BufferedReader stdin = new BufferedReader (new InputStreamReader( System.in));

String txtin;
int gewicht, groeße, groeßeq, alter, BMI;

System.out.println("Geben Sie Ihr Gewicht in Kg an.");
txtin = stdin.readLine();
gewicht = Ineger.parse.Int( txtin );

System.out.println("Geben Sie Ihre Koerpergroesse in cm an.");
txtin = stdin.readLine();
groesse = Integer.parse.Int( txtin ); 

groesseq = groesse * groesse;
BMI = gewicht / groesseq;


System.out.println("Ihr aktueller BMI betraegt:" + BMI );
}
}
 
Zuletzt bearbeitet:

lassard

Mitglied
Ja, Danke erstmal, hast natürlich recht, das hätte ich sehen müssen.
läuft aber immer noch nicht - was meinst du mit 5. int/int ?

geht das nicht? muss ich da ne double nehmen?
dachte der killt mir da nur das nachkomma...
 

lassard

Mitglied
O.K. hab ein bisschen gespielt und jetzt läuft es.

Java:
import java.io.*;

class BMI
{
  public static void main (String[] args) throws IOException
  {
  String rechne;
  double gewicht, groesse, groesseq, alter, BMI;

  BufferedReader stdin = new BufferedReader ( new InputStreamReader( System.in ) );
   

  System.out.println("Geben Sie Ihr Gewicht in Kg an.");
  rechne = stdin.readLine();
  gewicht = Double.parseDouble( rechne );

  System.out.println("Geben Sie Ihre Koerpergroesse in m an.");
  rechne = stdin.readLine();
  groesse = Double.parseDouble( rechne ); 

  groesseq = groesse * groesse;
  BMI = gewicht / groesseq;
  

  System.out.println("Ihr aktueller BMI betraegt:" + BMI );
  }
}

bei der Meterangabe nimmt er aber kein "," sondern nur "."
wie kann man das ändern?
 

eRaaaa

Top Contributor
Java:
rechne = stdin.readLine().replaceAll(",", ".");

zum Beispiel...

/edit: der Post stand doch eben noch nicht da? :reflect:
 

dhachim

Bekanntes Mitglied
Vielleicht ist es etwas früh, aber du solltest dir eine Entwicklungsumgebung besorgen, die dich mit der Syntax unterstütz.

Eclipse würde ich eigentlich sogar schon Anfängern empfehlen. Je früher man anfängt, desto besser.

ABER Achtung, lass dir nicht zuviel Arbeit zu Anfang abnehmen. Schaue immer was du tust, und versuche es zu verstehen. Denn sonst wirst du irgendwann zwar Java programmieren können, aber kein hello World zu Papier bekommen.

All die Fehler die du gemacht hast, hätte dir Eclipse angezeigt, und wahrscheinlich auch für alles ne Lösung vorgeschlagen.


Also schaus dir vielleicht mal an. Zu Eclipse gibts genug Anleitungen und Tipps: :rtfm:
 
T

Tomate_Salat

Gast
replace ersetzt meines wissens nach nur das erste vorkommen replaceAll ersetzt alle.
 

eRaaaa

Top Contributor
Naja, der String hat normal aber eh nur ein Komma, das meinte The_S.
Ich rede mich jetzt einfach damit raus, dass ich dahinter ja - "zum Beispiel" - angehängt habe :bae:
 
T

Tomate_Salat

Gast
:D Nun ja, normal, aber was ist in der Branche schon normal? Ok, selbst im Falle von einer Eingabe mit 2 oder mehr Kommas sollte hier ein Fehler ausgelöst werden (wäre eigentl. so ein Eintrag legitim: 13.4.52?! Mir fällt gerade auf, soetwas noch nie ausprobiert zu haben, aber ich glaubs eher nicht), denn viele Benutzer glauben dann doch: der Rechner übernimmt ja eh das Denken für mich^^.
 
T

Tomate_Salat

Gast
replace(char oldChar, char newChar)
Returns a new string resulting from replacing all occurrences of oldChar in this string with newChar.

^^ mein Fehler, benutz replace seeeehr selten, keine Ahnung wie ich da auf meine vorherige Aussage gekommen bin :-/ wahrscheinl. durch das [c]All[/c] von replaceAll.
 

Oben