package gotowe.p04_operatory;

import javax.swing.JOptionPane;

public class ZastosowaniaLeniwychOperatorow {

    public static void main(String[] args) {
        String imie = JOptionPane.showInputDialog("Jak masz na imię?");

        if(imie != null && imie.length() <= 3) {
            JOptionPane.showMessageDialog(null, "Masz krótkie imię");
        }

        // Gdybym nie sprawdzał czy napis nie jest nullem,
        // to w przypadku Cancel dochodziłoby do błedu NullPointerException (NPE)
        // w momencie próby wywołania length()
        //		if (imie.length() <= 3) {
        //			JOptionPane.showMessageDialog(null, "Masz krótkie imię");
        //		}

        // Gdybym zamiast "leniwego" && użył "gorliwego" &
        // to także doszłoby do błędu, bo Java sprawdzałaby prawą stronę warunku nawet wtedy gdy lewa jest fałszem
        //		if(imie != null & imie.length() <= 3) {
        //			JOptionPane.showMessageDialog(null, "Masz krótkie imię");
        //		}

        String jezyk = JOptionPane.showInputDialog("Jaki jest Twój ulubiony język programowania?");

        if(jezyk != null && jezyk.equals("Java")) {
            JOptionPane.showMessageDialog(null, "Brawo");
        } else {
            JOptionPane.showMessageDialog(null, "Źle");
        }

        // jeśli chodzi o tę konkretną sytuację, to pisząc w tej kolejności zapobiegamy wyjątkowi NPE
        if("Java".equals(jezyk)) {
            JOptionPane.showMessageDialog(null, "Brawo");
        } else {
            JOptionPane.showMessageDialog(null, "Źle");
        }
    }

}
