Metody wyjasnienie

0

WItam, czy moglby mi ktos wyjasnic skad program wyswietla mi wartosci 10 i -10 przy wyswietalaniu go, nie moge do tego dojsc :/ screen zadanka jest zalaczony
Udanego wieczoru!

public class CwIf{
    public static void main(String[]args){

        //       Napisz metodę, która sprawdzi czy temperatura przekazana jako argument jest dodatnia.

        int positiveTemperature = 10;
        int negativeTemperature = -10;

        isTemperaturePositive(positiveTemperature);
        isTemperaturePositive(negativeTemperature);
    }

    private static boolean isTemperaturePositive(int temperature) {
        boolean isPositive = temperature > 0;

        if (isPositive) {
            System.out.println("Temperatura " + temperature + " jest dodatnia.");
        }
        else {
            System.out.println("Temperatura " + temperature + " nie jest dodatnia.");
        }

        return isPositive;
    }
}
0

A co program ma wyświetlać ?

0

Tu masz ćwiczenie if, musisz wcześniej opanować co to jest zmienna i metoda.

0
katakrowa napisał(a):

A co program ma wyświetlać ?

Czy temperatura jest dodatnia czy ujemna i wlasnie wyswietla tylko nie rozumie do konca dlaczego tak a nie inaczej :P

0

System.out.println() wyświetla tekst w konsoli

4

Na marginesie, tu jest typowy błąd projektowy początkujących, że funkcja coś robi, zwraca jakąś wartość, a oprócz tego drukuje na System.out
Ten wątek pokazuje, do czego to prowadzi

0
Michal Omi napisał(a):

Czy temperatura jest dodatnia czy ujemna i wlasnie wyswietla tylko nie rozumie do konca dlaczego tak a nie inaczej :P

Albowiem takie dostał polecenie.

 isTemperaturePositive(positiveTemperature);
 isTemperaturePositive(negativeTemperature);

Najpierw wykonuje metodę isTempereturePositive z argumentem positiveTemperature (10), a potem dla negativeTemperature (-10).
PS. Ta metoda nie musi niczego zwracać.

0

Zdecydowanie lepszą praktyką będzie wydzielenie osobnej klasy. Spróbuj podchodzić do swoich problemów w sposób obiektowy.
Z temperaturą można zrobić wiele rzeczy, nie tylko sprawdzić czy jest dodatnia, ujemna. Możną ją przekonwertować do innych jednostek, przykładowo do temperatury Kelwina.
Wiele funkcjonalności możesz umieścić w klasię, którą nazwiemy procesorem temperatury w stopniach celsjusza (CelsiusTemperatureProcessor).

Dzięki temu w twojej klasie klienckiej (Metoda Main) możesz w bardzo czytelny sposób zwrócić rezultat swoich prac, ukrywając logikę przed użytkownikami, których nie interesuje sposób w jaki zaimplementowałeś metody a wyłącznie to, czy ich dane wejściowe (W tym przypadku temperatura) spełnia określone warunki.

public class CelsiusTemperatureProcessor {

    private double temperature;

    public CelsiusTemperatureProcessor(double temperature) {
        this.temperature = temperature;
    }


    public boolean isTemperaturePositive() {
        return temperature > 0;
    }

    public boolean isTemperatureZero() {
        return temperature == 0;
    }

    public boolean isTemperatureNegative() {
        return temperature < 0;
    }

    public double convertToFahrenheitTemperature() {
        return temperature * 1.8d + 32;
    }

    public double convertToCalvinTemperature() {
        return temperature + 273.15d;
    }

}

class Main {

    public static void main(String[] args) {
        double celciusPositiveTemperature = 25d;
        CelsiusTemperatureProcessor temperatureProcessor = new CelsiusTemperatureProcessor(celciusPositiveTemperature);

        System.out.println("Negative: " + temperatureProcessor.isTemperatureNegative());
        System.out.println("Zero: " + temperatureProcessor.isTemperatureZero());
        System.out.println("Positive: " + temperatureProcessor.isTemperaturePositive());
        System.out.println("FahrenheitTemperature: " + temperatureProcessor.convertToFahrenheitTemperature());
        System.out.println("CalvinTemperature: " + temperatureProcessor.convertToCalvinTemperature());
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1