package gotowe.p04_operatory;

public class Leniwosc1 {
    public static void gorliwa() {
        // opertor "gorliwy"
        // zawsze oblicza obie strony wyrażenia logicznego, a dopiero potem daje wynik false / true
        if(lewy() & prawy()) {
            System.out.println("prawda");
        } else {
            System.out.println("fałsz");
        }
    }

    public static void leniwa() {
        // operator "leniwy"
        // jeśli lewa strona rozstrzyga o ostatecznym wyniku, to prawa strona nie jest sprawdzana
        if(lewy() && prawy()) {
            System.out.println("prawda");
        } else {
            System.out.println("fałsz");
        }
    }

    private static boolean lewy() {
        System.out.print("lewy ");
        return false;
    }

    private static boolean prawy() {
        System.out.print("prawy ");
        return true;
    }

    public static void main(String[] args) {
        System.out.println("wersja gorliwa");
        gorliwa();

        System.out.println("\nwersja leniwa:");
        leniwa();
    }
}
