While-Schleifen-Fehler

Diskutiere While-Schleifen-Fehler im Java Basics - Anfänger-Themen Bereich.
M

-Migjo-

Guten Tag,

habe hier einen kleinen Fehler mit der While-Schleife, diese sollte die Temperatur in Fahrenheit umrechnen und falls dies erfüllt wurde, den Benutzer fragen, ob der Benutzer weiter machen will oder nicht.

Das Programm springt aber immer wieder zum else-Teil und führt diese parallel zur Abfrage aus.

Code:
Java:
import java.util.Scanner;

public class TempRechner {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Scanner sc = new Scanner (System.in);
        String entscheidung;
        final double fahrenheitincelsius = 0.5555555555555556;
        int i = 1;
        int x = 1;
        int a;
        double tempfahrenheit;

        while(x>0)
        {
            while(i!=0) {
                //System.out.println("uqu");
                System.out.println("Was Soll ueberprueft werden: ");
                entscheidung = sc.nextLine();
                entscheidung = entscheidung.replaceAll("[^a-z,A-Z]","");
                if (entscheidung.equalsIgnoreCase("celsius")) { 
                    System.out.println("Mache ich noch");
                    i--;
                }
                else if (entscheidung.equalsIgnoreCase("fahrenheit")) {
                    System.out.println("Geben sie die Temperatur Zahl an: ");
                    tempfahrenheit= sc.nextDouble();
                    System.out.println((tempfahrenheit-32) * fahrenheitincelsius);
                    i--;
                }
                else {
                    System.out.println("Ungueltige Angabe , geben Sie erneut ein :");
                }
            }
            i=1;
            entscheidung =" ";
            System.out.println("Wollen Sie fortfahren ?(1 = Ja / 0 = Nein : ");
            a=sc.nextInt();
            
            if (a==0) {
                x--;
            }
        }
        System.out.println("Auf Wiedersehen!");
        sc.close();
    }

}
 
Zuletzt bearbeitet von einem Moderator:
T

TM69

Sry, aber ich kann da, außer dass etwas unglücklich programmiert ist (das ist aber ein anderes Thema :D:D:D),kann ich deinen Fehler nicht reproduzieren (ausgehend von dem obigen Code).
 
mihe7

mihe7

Die nextXXX()-Methoden entfernen das Zeilenende nicht aus dem Puffer, so dass das in der nächsten Iteration folgende nextLine() einen leeren String liest. Da nun einmal "" was anders als "Celsius" (egal, wie Du es schreibst) ist, landest Du im else-Zweig.
 
Thema: 

While-Schleifen-Fehler

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben