A Return of double

HI,

so bin nun ein paar Schritte weiter. Mein quelltext bzw. die java dateien funktionieren. Nun habe ich aber das Problem, dass in der Übung gesagt wird , es soll eine double getDoubleInput Methode sein, damit ein Wert wird ausgegebn wird. Hier erstmal der Quelltext:

Java:
  public void getDoubleInput() {

        /*
         * Reads a value received from the keyboard and returns it as a double.
         *
         * @return The loaded String
         */
        String input = ""; // Input from the console
        InputStreamReader isr = new InputStreamReader(System.in); // character-based data stream
        BufferedReader br = new BufferedReader(isr); // Cache for character-based data streams

        try {

            System.out.print("Bitte geben Sie den Messwert ein: ");
            input = br.readLine(); // Save typing in input
            double measuredValue = Double.parseDouble(input);
            System.out.println(""); // Blank line
            System.out.print("Bitte geben Sie den Sollwert ein: ");
            input = br.readLine(); // Save typing in input
            double nominalValue = Double.parseDouble(input);
            analyze(measuredValue, nominalValue); // Parameters of analyze method

        } catch (IOException e) {
            e.printStackTrace(); // Output error
            System.exit(0); // ends the program
        }


    }

    /**
     * Method for the analyze.
     *
     * @param measuredValue    The measured value
     * @param nominalValue     The nominal value
     */
    public void analyze(double measuredValue, double nominalValue) {

        /* Output calculation */
        double calculation = measuredValue - nominalValue;

        if (calculation < 0) {
            calculation = -calculation;
        }

        if (nominalValue == measuredValue) {
            System.out.println("Messwert entspricht exakt dem Sollwert");
        } else if (calculation <= 0.25) {
            System.out.println("Messwert liegt innerhalb der Toleranz");
        } else if (calculation <= 0.5) {
            System.out.println("Messwert ist brauchbar");
        } else {
            System.out.println("Messwert ist Ausschuss");
        }
   

    }


}

Ersetze ich jetzt nur das void in double und setzte unten return input; ein oder muss ich eine neue Mehtode einfügen, oder liege ich jetzt ganz falsch.

Danke im voraus

gentleman2010
 
Java:
return nominalValue;
Das ist doch der umgewandelte double, wenn ich dich richtig verstanden habe
 
der außerhalb des try/catch vorerst aber nicht sichtbar ist,
bei zwei eingelesenen Werten nur den zweiten zurückzugeben ist auch etwas merkwürdig,

ohne genaue Spezifikation kann man genauso gut
return 42;
drunter schreiben
 
Das ist es ja.
Es soll eine Methode geben, vom Typ double.. die heißt indem Falle getDoubleInput().
Diese soll die Möglichkeit bieten, generell irgendeinen Wert den der User grad mal getippt hat, von der KOmmandozeile zu lesen
dann wird eben dieser wert als sog. rückgabewert mit return ausgegeben
nun soll die testklasse diese Methode aufrufen können um mehrere werte abzufragen
einmal den nominalwert und danach den messwert
dann werden die beiden eingelesenen werte, die also mit mehreren aufrufen der eben genannten methode eingelesen wurden an die methode analyze weiter gegeben
per parameter...
diese spuckt dann ihre analyze als text auf die kommandozeile
also getDoubleInput() soll NUR einen einzigen nicht näher bekannten wert einlesen und returnen.

so ist es beschrieben und nun weiß ich nicht was ich wo eintragen muss. wenn ich checkstyle laufen lasse meldet er, dass der mehtoden name nicht mit der geforderten aufgabe überein stimmt. also müsste doch auch void weg und ein double dort hin ??? oder? bin grad vollkommen überfragt.
 
deine bisherige getDoubleInput-Methode solle eher die main-Methode sein oder einen anderen Namen tragen,
getDoubleInput() muss anders, kürzer lauten, eben nur von der Konsole einlesen,
versuche folgendes Programm zum Laufen zu bringen:
Java:
public class Test {
    public static void main(String[] args)  {

        System.out.print("Bitte geben Sie den Messwert ein: ");
        double measuredValue = getDoubleInput();
        System.out.println(""); // Blank line
        System.out.print("Bitte geben Sie den Sollwert ein: ");
        double nominalValue = getDoubleInput();
    }

    public static double getDoubleInput()  {
        return 42; // hier besser machen, ruhig wieder String einlesen usw., am Ende einen Wert zurückgeben
    }
}
 
Die main methode steht in einer test.java

Java:
public class MeasurementAnalyzerTestbed {

    /**
     * Main method.
     *
     * Starts the MeasurementAnalyzerTestbed
     *
     * @param args    not used
     */
    public static void main(String[] args) {
        MeasurementAnalyzer measurementAnalyzer = new MeasurementAnalyzer();
        measurementAnalyzer.getDoubleInput();
    }

diese soll halt die getdouble methode soll nur einen eingabewert erwarten, deswegen soll sie 2 mal aufrufen werden. und ich weiß einfach nciht was ich in die beiden *.java einsetzen muss damit das funktioniert
 
wenn die main-Methode fest vorgegeben ist, wo willst du dann '2 mal aufrufen', den zweiten Aufruf einfügen?
na mach wie du denkst, ich habe meinen Vorschlag denke ich dargelegt,
alle Details und Rahmenbedingungen der Aufgabe, die du vielleicht nur falsch interpretierst, möchte ich nicht durchgehen
 

Zurück
Oben