www.vorkurse.de
Ein Projekt von vorhilfe.de
Die Online-Kurse der Vorhilfe

E-Learning leicht gemacht.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Teams · Forum · Wissen · Kurse · Impressum
Forenbaum
^ Forenbaum
Status Mathe-Vorkurse
  Status Organisatorisches
  Status Schule
    Status Wiederholung Algebra
    Status Einführung Analysis
    Status Einführung Analytisc
    Status VK 21: Mathematik 6.
    Status VK 37: Kurvendiskussionen
    Status VK Abivorbereitungen
  Status Universität
    Status Lerngruppe LinAlg
    Status VK 13 Analysis I FH
    Status Algebra 2006
    Status VK 22: Algebra 2007
    Status GruMiHH 06
    Status VK 58: Algebra 1
    Status VK 59: Lineare Algebra
    Status VK 60: Analysis
    Status Wahrscheinlichkeitst

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Java" - Java
Java < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Java: Erneuter Durchlauf
Status: (Frage) beantwortet Status 
Datum: 21:44 Sa 17.05.2014
Autor: Benko

Aufgabe
Moin ich möchte mit dem Prg. den BMI berechnen. Bei der Abfrage, ob der BMI nochmal berechnet werden soll, hab ich ne do-while - Schleife verwendet.
Geht nich der Scheiß, warum ? Hast jmd ne Idee, wo der Syntaxfehler is?
VG

import java.util.Scanner;


public class übung1 {

public static void main (String [] args){

Scanner scan = new Scanner (System.in);
String antwortja= new String ("ja");
String antworteingabe;
do{


System.out.println("Geben Sie Ihr Gewicht in Kg ein: ");
double gewicht= scan.nextDouble();

System.out.println("Geben Sie Ihre Größe in Meter ein: ");
double groesse= scan.nextDouble();

double bmi= berechnen(groesse,gewicht); //Methode berechnen deklarieren
System.out.println("Ihr BMI ist+" +bmi );

anzeigen(bmi);
System.out.println("Wollen Sie den bmi erneut berechen, ja oder nein?");
antworteingabe=scan.nextLine(); }
while(antworteingabe.equals(antwortja));

}

public static double berechnen(double groesse, double gewicht){

double bmi = gewicht/(groesse*groesse);

return bmi;

}

public static void anzeigen(double bmi){ //Methode anzeigen

if (18 <= bmi && bmi <= 24) // Idealgewicht

System.out.println("Sie haben Idealgewicht, top!");
else if (bmi < 18) // Untergewicht
{
System.out.println("Sie haben Untergewicht, essen Sie maln bisschen mehr Pfannkuchenoder Burger.");
} else if (24 < bmi && bmi <= 30) // leichtes Übergewicht
{
System.out.println("Sie haben leichtes Übergewicht, finger weg von der Schokolade.");
} else
System.out.println("Sie sind fett (Adipositas, gehen Sie bitte ins Fitnessstudio.");

}

}

        
Bezug
Java: Antwort
Status: (Antwort) fertig Status 
Datum: 22:41 Sa 17.05.2014
Autor: MathePower

Hallo  Benko,

> Moin ich möchte mit dem Prg. den BMI berechnen. Bei der
> Abfrage, ob der BMI nochmal berechnet werden soll, hab ich
> ne do-while - Schleife verwendet.
>  Geht nich der Scheiß, warum ? Hast jmd ne Idee, wo der
> Syntaxfehler is?


Es ist die Abfrage ob ein weiterer Durchlauf erfolgen soll,
zu modifizieren.


>  VG
>  import java.util.Scanner;
>  
>
> public class übung1 {
>  
> public static void main (String [] args){
>  
> Scanner scan = new Scanner (System.in);
>   String antwortja= new String ("ja");
>   String antworteingabe;
>   do{
>  
>
> System.out.println("Geben Sie Ihr Gewicht in Kg ein: ");
>   double gewicht= scan.nextDouble();
>  
> System.out.println("Geben Sie Ihre Größe in Meter ein:
> ");
>   double groesse= scan.nextDouble();
>  
> double bmi= berechnen(groesse,gewicht); //Methode
> berechnen deklarieren
>   System.out.println("Ihr BMI ist+" +bmi );
>  
> anzeigen(bmi);
>   System.out.println("Wollen Sie den bmi erneut berechen,
> ja oder nein?");
>   antworteingabe=scan.nextLine(); }
>   while(antworteingabe.equals(antwortja));
>  
> }
>  
> public static double berechnen(double groesse, double
> gewicht){
>  
> double bmi = gewicht/(groesse*groesse);
>  
> return bmi;
>  
> }
>  
> public static void anzeigen(double
> bmi){ //Methode anzeigen
>  
> if (18 <= bmi && bmi <= 24) //
> Idealgewicht
>  
> System.out.println("Sie haben Idealgewicht, top!");
>   else if (bmi < 18) // Untergewicht
>   {
>   System.out.println("Sie haben Untergewicht, essen Sie
> maln bisschen mehr Pfannkuchenoder Burger.");
>   } else if (24 < bmi && bmi <= 30) //
> leichtes Übergewicht
>   {
>   System.out.println("Sie haben leichtes Übergewicht,
> finger weg von der Schokolade.");
>   } else
>   System.out.println("Sie sind fett (Adipositas, gehen
> Sie bitte ins Fitnessstudio.");
>
> }
>  
> }


Gruss
MathePower

Bezug
                
Bezug
Java: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 22:49 Sa 17.05.2014
Autor: Benko

Ja und wie mach ich das? Ich hab kein Plan. Wäre nett, wenn du das Programm fertigstellen kannst, sitz schon lange dran..

Bezug
                        
Bezug
Java: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 23:35 Sa 17.05.2014
Autor: Benko

Ich habe doch die Do-while-Scheife genommen, um eine Bedingung festzulegen.
Dann hab ich ein Scanner (LINE), also für Strings eingebaut. Ich kann aber nicht JA oder NEIN eingeben...WARUM. Und dieses mal bitte eine quaifizierte Antwort, nicht wie von Mathepower

Bezug
                                
Bezug
Java: Antwort
Status: (Antwort) fertig Status 
Datum: 00:40 So 18.05.2014
Autor: Event_Horizon

Hallo!

Das Problem: das scan.nextDouble liest aus dem Eingabepuffer alle Zeichen ein, die Bestandteil einer Zahl sein können, macht daraus intern auch eine Zahl, und löscht die Zeichen aus dem Putter. Der Zeilenvorschub (Return-Taste) bleibt im Puffer, ist ja kein Bestandteil einer Zahl.
Danach kommt das scan.nextLine. Das sieht den Zeilenvorschub direkt am Anfang des Puffers und denkt, es sei damit schon fertig.

Du mußt dafür sorgen, daß der Puffer vorher geleert wird. Dafür gibt es sicher einen bestimmten Befehl. Vorerst kannst du VOR der Frage, ob noch eine Berechnung durchgeführt werden soll,  noch ein weiteres scan.nextLine einfügen, das diesen einen Zeilenvorschob frisst.

Bezug
                                        
Bezug
Java: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 00:57 So 18.05.2014
Autor: Benko

Dankeschön Event_Horizon, wenigstens einer hört hier vernünftige Musik ;)

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorkurse.de
[ Startseite | Mitglieder | Teams | Forum | Wissen | Kurse | Impressum ]